gpt4 book ai didi

java - 避免 Swing 荧光笔溢出到新添加的文本中

转载 作者:行者123 更新时间:2023-12-02 02:26:54 25 4
gpt4 key购买 nike

我正在 JTextPane 上实现一个简单的荧光笔。我希望它在我输入特殊关键字时突出显示,例如 ifcase 等。正如 IDE 所做的那样。

我面临的问题是,当我检测到刚刚编写了一个特殊关键字并突出显示它(这确实有效)时,我之后输入的所有内容也会突出显示。看看 API,我认为情况并非如此。如何避免这种情况?

这是有问题的代码:

if (word.equals("if")) {                        
textPane.getHighlighter().addHighlight(wordStartIdx, pos+1, highlightPainter);
textPane.getHighlighter().addHighlight(pos+2, pos+2, noHightlighter); // tried this to see if it would help, but it doesn't change anything.. anything typed after the word "if" will still be hightlighted!
}

谢谢

最佳答案

您可以尝试使用属性,而不是使用荧光笔:

SimpleAttributeSet green = new SimpleAttributeSet();
StyleConstants.setForeground(green, Color.GREEN);

// Change attributes on some existing text

StyledDocument doc = textPane.getStyledDocument();
int offset = textPane.getCaretPosition(); // should be after the "f"
doc.setCharacterAttributes(offset-2, 2, green, false);

关于java - 避免 Swing 荧光笔溢出到新添加的文本中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47664250/

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