首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java使用StyledDocument改变JTextPane上元素的颜色

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

Stack Overflow用户
提问于 2012-03-17 07:30:31
回答 2查看 3.2K关注 0票数 1

这对我来说有点过头了..我正在使用JTextPane聊天,我在那里有颜色。我想要的是,通过引用一个元素来改变它的颜色。我正在使用StyledDocument,我不知道怎么做..

提前感谢;)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-17 14:07:04

使用setCharacterAttributes()。使用StyleConstants.setBackground()/setForeground().在SimpleAttributeSet中定义所需的颜色使用元素的起点和终点偏移量作为偏移量和长度。

如果最后一个属性为false,则只替换SimpleAttributeSet中定义的元素的塔式属性。

票数 3
EN

Stack Overflow用户

发布于 2012-03-17 18:01:55

你想要的似乎可以用一种方法来描述,看看吧:

代码语言:javascript
复制
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一起传递给此方法,就会看到魔力:-)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9745792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档