Ich schreibe einen Texteditor in Java, mit Swing. Meine Hauptkomponente, die ich benutze, um den Text einzugeben, ist JTextPane. Ich weiß, wie man markierten Text fett formatiert, aber ich möchte auch einfach fett drücken und neuen Text formatieren lassen. Hier ist mein Code:Schreiben mit Fett in Java mit Swing
static void boldSelection(JTextPane editor, JButton button){
StyledDocument doc = (StyledDocument) editor.getDocument();
int selectionEnd = editor.getSelectionEnd();
int selectionStart = editor.getSelectionStart();
if (selectionStart == selectionEnd) {
return;
}
Element element = doc.getCharacterElement(selectionStart);
AttributeSet as = element.getAttributes();
MutableAttributeSet asNew = new SimpleAttributeSet(as.copyAttributes());
StyleConstants.setBold(asNew, !StyleConstants.isBold(as));
doc.setCharacterAttributes(selectionStart, editor.getSelectedText().length(), asNew, true);
}
Es funktioniert, aber ich habe keine Ahnung, wie es zu ändern, da ich die Länge zu setCharacterAttributes passieren muß. Um klar zu sein: das ist, was ich habe: Bolding selected text und das ist, was ich tun möchte: Entering bolded text
Für eine bessere Hilfe früher, Posten [MCVE] oder [Kurz, Self Contained, Korrekt Beispiel] (http://www.sscce.org/). –
würden Sie suchen eine Aktion Hörer haben, die überprüft, ob Sie sich in einem „bold“ Zustand sind, und wenn ja, gilt es für die eingegebenen Zeichen – Rogue