我正在尝试在JTextPane中替换文本颜色而不更改整个JTextPane的颜色。 我在网上发现了一个允许你这样做的课程,但是当我试图创建一个“ColorPane”对象来运行他提供的方法时,编译的代码却根本无效。我的笔记本电脑只播放了典型的“Windows禁止声音”。 所以我现在正在尝试添加我需要的方法,但是我遇到了一些类型不匹配的错误。
这是ColorPane类:(我刚拿出创建表的方法) http://www.java2s.com/Code/Java/Swing-JFC/ExtensionofJTextPanethatallowstheusertoeasilyappendcoloredtexttothedocument.htm
以下是类型不匹配错误的方法: http://pastebin.com/jWtQK0Va
谢谢!
答案 0 :(得分:1)
看看你的问题,你似乎想在你的JTextPane中有多种颜色。 您只需将此方法放在代码中并根据需要提供参数。
public void appendToPane(String yourText, Color colour)
{
StyleContext sc = StyleContext.getDefaultStyleContext();
AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.Foreground, colour);
aset = sc.addAttribute(aset, StyleConstants.FontFamily, "Lucida Console");
int len = tPane.getDocument().getLength();
tPane.setCaretPosition(len);
tPane.setCharacterAttributes(aset, false);
tPane.replaceSelection(yourText);
}
以上方法使用以下导入:
tPane是JTextPane的对象。就像你希望你的名字以蓝色显示一样,将方法称为appendToPane(“你的名字”,Color.BLUE);现在,如果您希望其他文本显示为红色,则再次调用该方法appendToPane(“New Text”,Color.RED);。希望这将解决您要求的查询。
此致