gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 10:57:53 26 4
gpt4 key购买 nike

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

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

enter image description here

而不是文本。

我还查看了 JTextAreasetHighlighter() 函数,但似乎我需要输入一个匿名 Highlighter > 我完全不知道如何实现所有覆盖的类。

jta.setHighlighter(new Highlighter() {
@Override
public void removeHighlight(Object tag) {
// TODO Auto-generated method stub

}
@Override
public void removeAllHighlights() {
// TODO Auto-generated method stub

}
@Override
public void paint(Graphics g) {
// TODO Auto-generated method stub

}
@Override
public void install(JTextComponent c) {
// TODO Auto-generated method stub

}
@Override
public Highlight[] getHighlights() {
// TODO Auto-generated method stub
return null;
}
@Override
public void deinstall(JTextComponent c) {
// TODO Auto-generated method stub

}
@Override
public void changeHighlight(Object tag, int p0, int p1)
throws BadLocationException {
// TODO Auto-generated method stub

}
@Override
public Object addHighlight(int p0, int p1, HighlightPainter p)
throws BadLocationException {
// TODO Auto-generated method stub
return null;
}
});

最佳答案

如果您指的是“正常”突出显示颜色(当您将鼠标拖动到文本上时),则可以简单地通过以下方式实现

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 也同样有效)

关于java - JTextArea 或 JTextPane 设置突出显示的文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33523994/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com