Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
JTextPane: Eigenschaften des selektierten Bereichs abfragen
Hallo!
Auf welche Weise kann man an die Eigenschaften des selektierten Bereichs einer JTextPane abfragen?
Oder kann man sogar die Eigenschaften jedes einzelnen Characters irgendwie abfragen?
Bin zwar kein Experte aber mit JTextComponent#getSelectionEnd und getSelectionStart bekommst du den Bereich, in dem die selektierten Chars liegen. Und über das Document (JTextComponent#getDocument) solltest du alles mögliche abrufen können.
Ich habe jetzt eine Lösung gefunden. Vielleicht interessiert's ja jemanden....
Leider ist die Lösung mehr durch ausprobieren, als durch verstehen entstanden. Deshalb: Kann mir jemand evtl. erklären, was hinter den Objekten StyledEditorKit und MutableAttributeSet steckt? Und wann ich mit Caret-Positionen und wann mit Select-Text-Positionen arbeiten muss?
Code:
StyledEditorKit kit;
MutableAttributeSet muteSet;
Color farbe;
String s = "";
for (int i=0; i<editorFeld.getText().length(); i++){
try{
zeichen = editorFeld.getText(i,1);
}catch (Exception ex){}
textFeld.setCaretPosition(i); // Setzen der Caret-Position auf Zeichen i
StyledEditorKit kit = (StyledEditorKit)editorFeld.getEditorKit();
muteSet = kit.getInputAttributes();
farbe=StyleConstants.getForeground(muteSet);
System.out.println(zeichen + ": " + farbe);
}
Ausgabe für "Hallo Welt" mit rotem "llo" und sonst blauem Text: