【发布时间】:2012-04-02 11:59:07
【问题描述】:
这对我来说有点矫枉过正..我正在使用 JTextPane 聊天,我在那里有颜色..我想要的是,参考改变它颜色的元素.. 我正在使用 StyledDocument,我不知道该怎么做..
提前致谢 ;)
【问题讨论】:
标签: java swing colors styles jtextpane
这对我来说有点矫枉过正..我正在使用 JTextPane 聊天,我在那里有颜色..我想要的是,参考改变它颜色的元素.. 我正在使用 StyledDocument,我不知道该怎么做..
提前致谢 ;)
【问题讨论】:
标签: java swing colors styles jtextpane
好像你的要求可以用一个方法来描述,看看:
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);
}
只需尝试将您的JTextPane 的引用以及您要提供的String 和相应的Colour 传递给此方法并查看魔术:-)
【讨论】:
使用 setCharacterAttributes()。使用 StyleConstants.setBackground()/setForeground() 在 SimpleAttributeSet 中定义所需的颜色。使用 Element 的开始和结束偏移量作为偏移量和长度。
如果最后一个属性为 false,则仅替换 SimpleAttributeSet 中定义的 Element 的 thouse 属性。
【讨论】: