Jag ska göra en sök&ändra funktion i min text editor.
När man söker efter ett ord och programmet hittar det valda ordet så skall den markera den.
Jag började med att använda mig utav StringTokenizer.
String text = jTextArea.getText();
StringTokenizer st = new StringTokenizer(text);
String search = "kalle"; //ordet som skall letas efter
for(int i = 0; i < antal token; ++i)
{
if(st.nextToken().equals(search) )
{
//markera ordet
}
}
Jag har lite svårt att greppa det hur man vet positionen på varje bokstav/ord.. Nån som kan förklara lite?
Om det är flera träffar på sökordet, så får du bara ut positionen på den sista träffen. Vill du ha positionen från alla träffar skulle jag integrera en Vector som tar hand om positionerna.
Är du säker på att du ska använda en JTextArea? Vill du göra ord feta, eller liknande, så kan du använda en JTextPane. Så slipper du ha en massa markeringar bara. :)
Jag har inte tillgång till Java API nu men jag tror att det i String klassen ska finnas en funktion "indexOf", tror även det finns någon som heter "find".
Jag hittade felet....tror jag. Det var så att när texten skulle markeras så var ett helt annat JFrame aktiverad. Jag stänge JFrame:et och då fungerade det. Fats nog vill jag att texten markeras även om "sök-fönstret" är aktivt. Kanske fungerar det bättre med en JDialog istället?
263 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849