Létrehozunk egy új Java projektet, de nem pipáljuk be a main metódust. A megnyitott projekthez új jFrameForm osztályt adunk jobb egérgombbal, majd futtatjuk. Futtatásnál a main metódusnak a jFormot jelöljük. Így már lett egy üres Formunk (programablakunk). A Formon elhelyezel egy menübárt, majd a file menüben egy open menüitemet hozol létre. Ezzel szeretnénk a fájlunkat megnyitni illetve ehhez megjeleníteni a dialógusablakot. A komponensekhez hozzáadsz még egy FileChooser komponenst is, ezt Netbeansban a legkönnyebben úgy teheted meg, ha a designe fülön a projekt felett "elejted" a komponenst, így az az Other Componentekhez kerül, nem kerül fel a panelra. Szükséged lesz még egy TextArea-ra is. Erre kellene kiírni a fájlban található szöveget. Esetleg feltehetsz még egy jTextField komponenst szövegbevitelre, illetve egy gombot, ha keresni szeretnéd a bevitt szövegrészt a TextArea1 szövegében.
A menüdben a menüitemet open-re nevezed, majd erre kettőt kattintva létre jön a jMenuItem1ActionPerformed metódus. Szükséged lesz még egy globális változóra is: ablak. Ez a dialógablakhoz kell, mivel ennek a visible tulajdonságát állítod igazra vagy hamisra a megjelenítéshez.
Ebből a kódból indulok ki:
JFrame ablak =new JFrame();
ablak.setVisible(true);
ablak.setSize(500, 400);
ablak.add(jFileChooser1);
Ezzel már elértük, hogy ki tudunk választani egy fájlt, vagy CANCEL-t nyomhatunk. Ezután a jFileChooser1-re kettőt kattintunk az Other Componens-eknél. Így megjelenik a design fülön ez az ablak. Jobb egérgombbal létrehozzuk neki azAction Performed eseményt:
event-->Action-->Action performed
Létrejön a kódban a jFileChooser1ActionPerformed metódus. Magának a fájl beolvasását, és a dialóg ablak eltüntetését már ebben a metódusban végezzük:
A while ciklusban érdemesebb a nextLine metódust használni a beolvasáshoz. És akár mindezt meg is jeleníthetjük rögtön a TaxtArea1-en.
while(be.hasNext()){
jTextArea1.setText(be.nextLine()+"\n")
}
A keresés megvalósításához ez segítségedre lehet:
String szoveg=jTextArea1.getText();
String keresett=jTextField1.getText();
int i=0;
while(i!=-1){
i=szoveg.indexOf(keresett, i);
System.out.println(i);
jTextArea1.setSelectionColor(Color.yellow);
jTextArea1.setSelectionStart(i);
jTextArea1.setSelectionEnd(i+keresett.length());
if (i!=-1){
i=i+keresett.length();
}
}
A kész program így néz ki:
Forrás letölthető itt
Az utolsó módosítás: 2023 September 19 13:49:18.