0

我在自己的编辑器上工作,我想为用户可能搜索的文本添加背景颜色。找到文本并设置背景颜色不是问题,问题是如何在焦点(突出显示)移动时去除背景颜色?

这设置了亮点:

int findPos = /* start position of user search text */
int findLength = /* length of user search text */

SimpleAttributeSet highlight = new SimpleAttributeSet();
StyleConstants.setBackground(highlight, Color.CYAN);
StyledDocument doc = jtextpane.getStyleDocument();
doc.setCharacterAttributes(findPos, findLength, highlight, false);

但是我怎样才能在不影响前景色的情况下再次去除高光呢?因为编辑器支持语法高亮,前景色可以是任何颜色。

我唯一能想到的就是简单地重置整个StyledDocument,然后再次在整个事情上运行我的 highlight 方法......但这似乎是一个非常低效的想法。

4

0 回答 0