• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Wir haben den Frühjahrsputz beendet, Ihr auch? Welches Foto zu dem Thema hat Euch dann am Besten gefallen? Hier geht es lang zur Abstimmung --> Klick

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