2017-09-29 4 views
0

Mit diesem Code versucht, aber es Farben nicht genau ändern, beachten Sie das Wort zu stoppen. Dies geschieht, wenn Sie die Wörter eingeben.Ungenaue Farbwechsel des Textes in JTextPane

https://i.stack.imgur.com/Wrel4.png

https://stackoverflow.com/a/28773736/7694892

+0

Fragen zur Fehlersuche ("Warum funktioniert dieser Code nicht?") Müssen das gewünschte Verhalten, ein spezifisches Problem oder einen Fehler und den kürzesten Code enthalten, der für die Reproduktion in der Frage erforderlich ist. Fragen ohne eine klare Problemstellung sind für andere Leser nicht nützlich. Siehe: Erstellen eines [mcve]. Verwenden Sie den Link "Bearbeiten", um Ihre * Frage * zu verbessern - fügen Sie keine weiteren Informationen über Kommentare hinzu. Vielen Dank! – GhostCat

+0

Nicht mit Code verknüpfen: Fügen Sie es Ihrer Frage als formatierten Text hinzu. – GhostCat

Antwort

1

Es scheint mir, dass Sie ein Problem mit dem Index haben. Es ist um eins nach unten, wenn Sie in die zweite Reihe gehen.

Dies würde für mich vorschlagen, dass Sie textPane.getText() verwenden, um den Text zu Tokenize zu bekommen.

Eine Lösung wäre, den Text aus dem Dokument direkt zu erhalten:

int length = textPane.getDocument().getLength(); 
String text = textPane.getDocument().getText(0, length); 

Check out Text and New Lines für den Unterschied zwischen den beiden Ansätzen.

Grundsätzlich wird der Index für jede Zeile um eins deaktiviert, da die Zeichenfolge "\ r \ n" für jede neue Zeile enthält, das Dokument jedoch nur "\ n" enthält.

Wenn dies nicht hilft, müssen Sie Ihr eigenes Debugging des Codes durchführen, um herauszufinden, warum der Offset falsch ist.

+0

Danke! Das funktionierte für mich, wusste nie wirklich über diese Sonderzeichen für verschiedene Texteditoren in Java-Schaukeln. –