2012-03-16 43 views

回答

3

使用setCharacterAttributes()。使用StyleConstants.setBackground()/ setForeground()在SimpleAttributeSet中定义所需的颜色。使用元素的偏移和长度的开始和结束偏移量。

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

+0

它的工作!非常感谢大家; D 你太棒了,谢谢。 – TiagoM 2012-03-17 12:14:22

2

好像你要求可以在一个单一的方法来描述一下,看看:

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的参考,到这个方法,看看魔术:-)

+0

谢谢,这是用颜色插入文本,我知道队友。我正在看的东西是编辑已经插入文本的颜色,你看? StanislavL已经帮了我;) 谢谢 – TiagoM 2012-03-17 12:15:39

+0

@TiagoM:Ahha,好像我误解了这个问题:(我的坏,那么对不起。 – 2012-03-17 12:17:28

+0

诺诺不要对不起,谢谢你的努力! – TiagoM 2012-03-17 14:00:53