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

我创建了一个使用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();

java大神给出的解决方案

我什至对光标突出显示优先于突出显示对象的突出显示感到满意

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

Swing-典型桌面应用程序中的并发 - java

这可能是一个广泛的问题,但我想知道单用户桌面应用程序通常在何处使用并发。您如何发现理想情况下(在设计阶段)并发问题?附注:从操作系统理论上来说,并发问题通常发生在无法共享资源(例如打印机)的情况下。不过,我仍然对在编程级别上可能发生的情况感到迷惑。 java大神给出的解决方案 Event Dispatch thread与其他逻辑之间的Swing中可能存在线程…

java:继承 - java

有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…

Java-如何将此字符串转换为日期? - java

我从服务器收到此消息,我不明白T和Z的含义,2012-08-24T09:59:59Z将此字符串转换为Date对象的正确SimpleDateFormat模式是什么? java大神给出的解决方案 这是ISO 8601标准。您可以使用SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM…

JTable所有列右对齐 - java

有没有一种方法可以同时对齐jtable中的所有列?使用这个:DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer(); rightRenderer.setHorizontalAlignment( JLabel.RIGHT ); JTAB_TABLE.getColumnMod…

查看抽象类的方法是否未被扩展类之一覆盖的方法 - java

我有一个抽象类,比如AbstractClass和扩展该抽象类的多个其他类(700多个)。 AbstractClass有一个方法,比方说baseMethod(),它不是抽象方法。许多类(500+)覆盖该方法并具有自己的实现。现在,通过eclipse,我可以很容易地看到通过Ctrl+Shift+G覆盖该方法的方法,但是除了手动以外,还有其他方法可以看到不覆盖该方…