Java使用StyledDocument更改JTextPane上元素的颜色



这对我来说有点过头了。我正在使用JTextPane聊天,我在那里有颜色。。我想要的是,参考一个元素来改变它的颜色。。我正在使用StyledDocument,我不知道如何做到这一点。。

提前感谢;)

使用setCharacterAttributes()。使用StyleInstance.setBackground()/setForeground(。使用元素的起点和终点偏移作为偏移和长度。

如果最后一个属性为false,则仅替换SimpleAttributeSet中定义的Element的千个属性。

看起来你想要的东西可以用一个方法来描述,看看:

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传递给此方法,即可看到神奇之处:-)

相关内容

  • 没有找到相关文章