我有一個JTextPane(或JEditorPane),我想在其中添加一些按鈕以格式化文本(如圖所示)。JTextPane - HTMLDocument:添加/刪除新樣式時,其他屬性也發生變化
當我將所選文本更改爲粗體(製作新樣式)時,字體系列(和其他屬性)也發生更改。爲什麼?我想設置(或刪除)所選文本中的粗體屬性,並保持原樣不變。
這就是我想:
private void setBold(boolean flag){
HTMLDocument doc = (HTMLDocument) editorPane.getDocument();
int start = editorPane.getSelectionStart();
int end = editorPane.getSelectedText().length();
StyleContext ss = doc.getStyleSheet();
//check if BoldStyle exists and then add/remove it
Style style = ss.getStyle("BoldStyle");
if(style == null){
style = ss.addStyle("BoldStyle", null);
style.addAttribute(StyleConstants.Bold, true);
} else {
style.addAttribute(StyleConstants.Bold, false);
ss.removeStyle("BoldStyle");
}
doc.setCharacterAttributes(start, end, style, true);
}
但正如我上面所解釋的,其他的屬性也隨之變化:
任何幫助將不勝感激。提前致謝!
http://oi40.tinypic.com/riuec9.jpg