我有一個JTextPane,我可以修改其中的一部分文本的樣式。如何設置要在JTextPane中鍵入的文本的樣式
假設沒有選中JTextPane,我希望能夠修改尚未包含的部分的樣式,也就是說,要設置用戶將要輸入的樣式下一個。
使用長度= 0的setCharacterAttributes(start,length,style,attributeSet,replace)似乎沒有這樣做。
我有一個JTextPane,我可以修改其中的一部分文本的樣式。如何設置要在JTextPane中鍵入的文本的樣式
假設沒有選中JTextPane,我希望能夠修改尚未包含的部分的樣式,也就是說,要設置用戶將要輸入的樣式下一個。
使用長度= 0的setCharacterAttributes(start,length,style,attributeSet,replace)似乎沒有這樣做。
如果您在文本窗格中的文檔設置DocumentFilter
(假設你使用的是AbstractDocument
子類,它具有setDocumentFilter
方法),您可以將它插入或更換時屬性設置爲文本。
編輯:
作爲一個簡單的例子,這是一個DocumentFilter
的replace
方法的實現,原來的文本顯示爲紅色,當用戶鍵入 'A':
public void replace(FilterBypass fb, int offset, int length,
String text, AttributeSet attrs) throws BadLocationException
{
if (text.startsWith("a"))
{
SimpleAttributeSet newAttrs = new SimpleAttributeSet();
StyleConstants.setForeground(newAttrs, Color.RED);
attrs = newAttrs;
}
super.replace(fb, offset, length, text, attrs);
}
試這個:
doc.setCharacterAttributes(0, doc.getLength() + 1, attributeSet, false);
這將改變整個文件的樣式,這不是我想要的。我只想改變要輸入的字符的風格。 – 2010-03-03 13:34:17