這對我來說有點矯枉過正..我正在使用JTextPane進行聊天,我在那裏有顏色..我想要的是,引用一個元素來改變它的顏色..我使用StyledDocument中的 ,我不知道如何做到這一點..提前Java使用StyledDocument更改JTextPane上元素的顏色
感謝;)
這對我來說有點矯枉過正..我正在使用JTextPane進行聊天,我在那裏有顏色..我想要的是,引用一個元素來改變它的顏色..我使用StyledDocument中的 ,我不知道如何做到這一點..提前Java使用StyledDocument更改JTextPane上元素的顏色
感謝;)
使用setCharacterAttributes()。使用StyleConstants.setBackground()/ setForeground()在SimpleAttributeSet中定義所需的顏色。使用元素的偏移和長度的開始和結束偏移量。
如果最後一個屬性爲false,則僅替換在SimpleAttributeSet中定義的Element的thouse屬性。
好像你要求可以在一個單一的方法來描述一下,看看:
private void appendToPane(JTextPane tp, String msg, Color c)
{
StyleContext sc = StyleContext.getDefaultStyleContext();
AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.Foreground, c);
aset = sc.addAttribute(aset, StyleConstants.FontFamily, "Lucida Console");
aset = sc.addAttribute(aset, StyleConstants.Alignment, StyleConstants.ALIGN_JUSTIFIED);
int len = tp.getDocument().getLength();
tp.setCaretPosition(len);
tp.setCharacterAttributes(aset, false);
tp.replaceSelection(msg);
}
只要嘗試與您String
和各自Colour
要提供轉達您的JTextPane
的參考,到這個方法,看看魔術:-)
它的工作!非常感謝大家; D 你太棒了,謝謝。 – TiagoM 2012-03-17 12:14:22