我有一个文本 JTextArea
,其中有一些突出显示的文本使用:
inputTextArea.getHighlighter().addHighlight(start, end, new DefaultHighlighter.DefaultHighlightPainter(new Color(color)));
它运行良好,但是如果我使用鼠标选择一些文本,当它位于突出显示的文本上时,不会绘制选择。
例如,如果我只想选择突出显示的文本的一部分,我看不到选择。
我怎样才能使选择显示在突出显示上?
最佳答案
您可以使用:
JTextArea textArea = new JTextArea(10, 20);
textArea.setText( "one\ntwo\nthree\nfour\nfive\nsix\nseven\neight" );
DefaultHighlighter highlighter = (DefaultHighlighter)textArea.getHighlighter();
highlighter.setDrawsLayeredHighlights(false);
try
{
highlighter.addHighlight(10, 20, new DefaultHighlighter.DefaultHighlightPainter(Color.YELLOW));
}
catch(Exception e) {}
改变 layered highlights 属性有两个效果:
- 您现在将看到选择
- 当突出显示的文本跨越多行时,突出显示到一行文本区域的末尾(而不仅仅是文本的末尾)。
关于Java 在突出显示的文本上选择文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49818079/