Highlighting während der Texteingabe

keman

Gast
Java - Highlighting während der Texteingabe

Ich will mit Java einen kleinen JavaScript-Syntaxhighlighter basteln, hab also mal mit dem Schlüsselwort "function" begonnen. Ich will, während der Texteingabe überprüft wird, ob das Wort "function" vorhanden ist, und es gehighlightet wird (Alle "function" müssen einen Highlight bekommen!). Ich habe mal dies hier gemacht, was aber nicht ganz funktioniert. Das erste Wort "function" wird rot. Das zweite dann auch, aber danach wird alles rot. Wo ist hier das Problem?

public void highlight() {
// p ist ein JTextPane
// sc ist ein StyleContext
Style _function = sc.addStyle("MainStyle", defaultStyle);
StyleConstants.setFontFamily(_function, "Monaco");
StyleConstants.setFontSize(_function, 12);
StyleConstants.setForeground(_function, Color.red);


if(p.getText().indexOf("function")!= -1) {

int index=0;
index=p.getText().indexOf("function",0);

while(index!=-1) {


doc.setCharacterAttributes(p.getText().indexOf("function",index), p.getText().indexOf("function",index)+8, _function, false);


index=p.getText().indexOf("function",index+1);

}
}
}
 

MatzeLoCal

Rheinischer Bohnapfel
Registriert
05.01.04
Beiträge
2.422
Hallo,

könntest Du evtl noch etwas mehr von deinem Code posten?

Ich würde, schon der Übersichtlichtkeit wegen, mir zwei int Variablen einrichten und mit diesen dann arbeiten.
Code:
int keywordStart = 0;
int keywordEnd = 0;

keywordStart entspricht natürlcih index

LoCal