0
我正在使用Java swing生成文本編輯器,使用JTextPane
,但我發現StyledEditorKit class
尚未設置背景顏色的方法。如何在JTextPane中設置背景顏色並獲取HTML代碼?
然後我用這個主意,設置背景色:
SimpleAttributeSet aSet = new SimpleAttributeSet();
StyleConstants.setBackground(aSet, color);
StyledDocument doc = textPane.getStyledDocument();
doc.setCharacterAttributes(textPane.getSelectionStart(),textPane.getSelectionEnd()-textPane.getSelectionStart(), aSet, false);
它可以JTextPane
顯示背景顏色, 但不textPane.GetText()
獲取的HTML代碼。
後來我還發現了一個想法:
class bgAction extends StyledEditorKit.StyledTextAction {
public bgAction(String arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
@Override
public void actionPerformed(ActionEvent arg0) {
JEditorPane editor = getEditor(arg0);
try {
String selectedText = editor.getSelectedText();
HTMLDocument document = (HTMLDocument) this.getStyledDocument(editor);
System.out.println(document == TextView.this.document);
document.remove(editor.getSelectionStart(),selectedText.length());
HTMLEditorKit et = (HTMLEditorKit) this.getStyledEditorKit(editor);
et.insertHTML(document, editor.getSelectionStart(), ""+ selectedText + "", 0, 0, HTML.Tag.SPAN);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
但insertHTML()
方法不起作用。 這是我出錯的地方嗎?
有沒有辦法在JTextPane
中設置背景顏色並獲取HTML代碼?
這個代碼是我的第一個代碼片斷一樣,可以顯示JTextPane的背景顏色,但不能由textPane.getText()獲取的HTML代碼。 – oliver
使用textPane.getDocument()。getText()類的方法。 –
textPane.getDocument()。getText()只能獲取文本,但我想獲取HTML代碼,並且textPane.getText()可以。 – oliver