JTextArea或JTextPane设置突出显示的文本颜色

时间:2015-11-04 14:09:51

标签: java swing highlight jtextarea jtextpane

我正在尝试更改TextArea或TextPane中的突出显示颜色,甚至是其他任何颜色。

请注意,我正在寻找更改颜色:

enter image description here

而不是文字。

我还看了一下JTextArea的{​​{1}}函数,但似乎我需要输入一个匿名的setHighlighter()类,我完全不知道如何实现所有的覆盖。

Highlighter

1 个答案:

答案 0 :(得分:1)

如果您的意思是“正常”高亮颜色(当您将鼠标拖到文本上时),这可以通过

来实现
textArea.setSelectionColor(Color.LIGHT_GRAY);

(或您希望它拥有的任何颜色。)

如果要以编程方式突出显示文本区域中的字符序列:

String searchedWord = "word";
int pos1 = textArea.getText().indexOf(searchedWord);
int pos2 = pos1 + searchedWord.length();
try {
    textArea.getHighlighter().addHighlight(pos1, pos2,
            new DefaultHighlighter.DefaultHighlightPainter(Color.LIGHT_GRAY));
} catch (BadLocationException e) {
    e.printStackTrace();
}

(同样适用于JTextPane