我正在制作一个小型 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());
}
如下所示:
现在,当我按下 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/