Hallo,
ich versuche gerade eine Methode zu schreiben die vorhandenen Text in einem JTextPane je nach Syntax farblich hervorhebt.
Mein Ansatz hierzu:
public void syntaxHigh(boolean flag)
{
if (flag)
{
String all_text = mainText[currIndex].getText();
int pos = -1;
MutableAttributeSet attr1 = new SimpleAttributeSet();
MutableAttributeSet attr2 = new SimpleAttributeSet();
StyleConstants.setForeground(attr1, Color.red);
StyleConstants.setForeground(attr2, Color.blue);
StyledDocument doc = mainText[currIndex].getStyledDocument();
while((pos = all_text.indexOf("new", pos + 1)) > -1)
{
doc.setCharacterAttributes(pos, 3, attr2, false);
}
}
}
Das JTextPane ist mainText[currIndex], ansich funktioniert diese Funktion auch. Nur ist sie viel zu langsam. Bei einem Text mit ca. 800 Zeilen wird die Wartezeit einfach zu hoch. Zumal die Funktion bis jetzt auch nur das Schlüsselwort "new" frablich hervorhebt. Bei mehreren Wörtern wirds noch viel langsamer.
Hat jemand einen Tipp wie ich das optimieren kann?
Gruß,
ueps