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

时间:2015-04-24 21:17:07

标签: java swing highlight jtextarea

我正在制作一个小型Swing应用程序并且有一个JTextarea,我想要突出显示部分文本。

当我开始我的appl。我指示要突出显示的行由方法"突出显示()"

突出显示
    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

现在,当我点击按钮时,它应该选择下面的下一项并突出显示它。

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

这是突出显示停止工作的地方。 我可以直到最后查看列表(所以我确定选择已经完成)但文本不再突出显示。

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

1 个答案:

答案 0 :(得分:3)

如果组件失去焦点,则可能无法看到选择。相反,您可以使用组件的突出显示器:

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"));