java - 为什么我在 jTextarea 中的文本不再突出显示?

标签 java swing highlight jtextarea

我正在制作一个小型 Swing 应用程序并有一个 JTextarea,我希望在其中突出显示部分文本。

当我启动我的应用程序时。我指示要突出显示的行由方法“highlight()”突出显示

    public static void highlight() {
    uihw.getTa().setSelectionStart(indexTxt[pencil]);//uihw is the ui instvar that has the jTextarea
    uihw.getTa().setSelectionEnd(indexTxt[pencil]+lines[pencil].length());
}

如下所示:enter image description here

现在,当我按下 Button 时,它应该选择下面的下一个项目并突出显示它。

    public static void buttonClicked(String f){
    if (pencil!=lines.length-1){
        pencil++;
    }
    highlight();
}

这就是突出显示停止工作的地方。 我可以浏览列表直到最后(所以我确信选择实际上已经完成)但文本不再突出显示。

关于原因的任何想法?或者关于更好地实现我的突出显示功能的建议?

最佳答案

如果组件失去焦点,选择可能不可见。相反,您可以使用组件的荧光笔:

HighlightPainter highlightPainter = DefaultHighlighter.DefaultHighlightPainter(Color.BLUE);//
Highlighter highlighter = textArea.getHighlighter();
highlighter.addHighlight(start, end, highlightPainter);

如果希望颜色与选择颜色相同,可以使用

HighlightPainter highlightPainter = DefaultHighlighter.DefaultPainter;

或通过外观指定选择颜色

HighlightPainter highlightPainter = DefaultHighlighter.DefaultHighlightPainter(UIManager.getColor("TextArea.selectionBackground"));

关于java - 为什么我在 jTextarea 中的文本不再突出显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29857652/

相关文章:

java - Java 中同一 GridBagLayout 中 JTextField 和 JComboBox 的问题

java - JTextPane 替换文档中的字符串

java - 如何在 Spring Boot 中升级 Spring 版本

java - (Java) 在运行时动态创建新的 REST Web 服务

java - 解析只是时间以获得差异

JavaScript execCommand ("HiliteColor") 取消高亮

jquery - 使用多种颜色来突出显示

java - Junit 测试类失败

java - 如何有效地编写 Java Swing 程序?

highlight - 如何在geany中突出显示多行代码块