mwanaheri
09-10-2006, 11:49
Morgen,
ich schreibe gerade an einem interaktiven Parser. Dafür muss will ich in einer TextArea den Satz, der gerade bearbeitet wird, farbig hervorheben (markieren). Mein Problem ist nun, dass die Markierung erst sichtbar wird, wenn der Benutzer einen Teil des Textes per Hand markiert hat., ansonsten wird zwar der Text durchlaufen, aber keine sichtbare Markierung angezeigt.
Eine kleine Methode zeigt den Haken:
private void markNextSentence(){
text = taTextAnzeige.getText();
selectionStart = selectionEnd + 1;
selectionEnd = text.indexOf((int)'.', selectionEnd + 1);
taTextAnzeige.select(selectionStart, selectionEnd);
System.out.println("start: " + selectionStart + "\nende: " + selectionEnd);
}
selectionStart und selectionEnd sind initialisiert mit 0 bzw. 1, falls es der erste Lauf ist.
Weiß jemand, wie ich das hinkriege, dass ohne vorherige Auswahl des Benutzers markiert wird?
ich schreibe gerade an einem interaktiven Parser. Dafür muss will ich in einer TextArea den Satz, der gerade bearbeitet wird, farbig hervorheben (markieren). Mein Problem ist nun, dass die Markierung erst sichtbar wird, wenn der Benutzer einen Teil des Textes per Hand markiert hat., ansonsten wird zwar der Text durchlaufen, aber keine sichtbare Markierung angezeigt.
Eine kleine Methode zeigt den Haken:
private void markNextSentence(){
text = taTextAnzeige.getText();
selectionStart = selectionEnd + 1;
selectionEnd = text.indexOf((int)'.', selectionEnd + 1);
taTextAnzeige.select(selectionStart, selectionEnd);
System.out.println("start: " + selectionStart + "\nende: " + selectionEnd);
}
selectionStart und selectionEnd sind initialisiert mit 0 bzw. 1, falls es der erste Lauf ist.
Weiß jemand, wie ich das hinkriege, dass ohne vorherige Auswahl des Benutzers markiert wird?