Java 在突出显示的文本上选择文本

标签 java swing

我有一个文本 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 属性有两个效果:

  1. 您现在将看到选择
  2. 当突出显示的文本跨越多行时,突出显示到一行文本区域的末尾(而不仅仅是文本的末尾)。

关于Java 在突出显示的文本上选择文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49818079/

相关文章:

java - JFrame 中的 JPanel

java - 图形元素不会出现在 JFrame (Java) 中

java - 当字符串呈现为 HTML 时,如何获取字符串的大小?

java.lang.LinkageError : loader constraint violation . .. EquinoxClassLoader/VNative

java - Spring Security 注销和最大 session 数

java - 将 RGBA 值转换为十六进制颜色代码

java - 我如何将绘图线放入 JInternalFrame 内部

java - 循环SQL语句

java - 如何将 .dic 和 .aff 文件添加到 java jar 中?

java - 如何在jFrame中for循环jPanel?