gpt4 book ai didi

java - JTextPane 中重叠突出显示的文本颜色

转载 作者:行者123 更新时间:2023-12-03 06:06:34 27 4
gpt4 key购买 nike

我创建了一个使用 JTextPane 的 Swing 界面。 JTextPane 使用自定义颜色突出显示:

textPane.getHighlighter().addHighlight(startPos, endPos, highlightPainter); 

用户还可以以普通方式使用光标突出显示文本。

我的问题是,我无法找到一种方法将荧光笔对象和光标选择突出显示的文本着色为第三种不同的颜色。荧光笔对象的突出显示始终优先。

我尝试使用 CaretListener 对象,但它仅在用户手动突出显示后释放鼠标时触发事件。当用户使用光标调整突出显示的区域时,我需要重叠来渲染。

我什至会很高兴光标突出显示优先于荧光笔对象的突出显示,但独特的重叠颜色是一个更好的功能。

以下问题与我的类似:

How to use LayeredHighlighter - One highlight on top of another

但唯一的答案只是链接到覆盖 GlassPane 的方法。然而,我更喜欢 JTextPane 或文档级解决方案,因为所选文本的值通过

很重要
textPane.getSelectionStart();

textPane.getSelectionEnd();

最佳答案

I would even be happy with the cursor highlighting taking precedence over the highlighter object's highlightings instead

JTextPane textPane = new JTextPane(...);
DefaultHighlighter highlighter = (DefaultHighlighter)textPane.getHighlighter();
highlighter.setDrawsLayeredHighlights(false);

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

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