我有一个非常简单的Swing GUI,只有一个JTetxtArea。我正在尝试使用以下方式以编程方式选择文本的一部分:
textArea.select(startSelection,endSelection);
这项工作。但是,只要我向GUI添加一些其他组件,我就不再看到选择了
frame.getContentPane().add(button);
frame.getContentPane().add(textArea);
textArea.select(startSelection,endSelection);
我怀疑在布局gui时,某些事件会导致文本被取消选择。我对吗?任何人都可以提出解决方案吗?
我的目标是拥有一个显示文本的程序,并允许用户输入开始和结束选择位置,并在这两个位置之间出现选择。谢谢。
答案 0 :(得分:4)
文本选择仅在文本组件具有焦点时显示。
文本组件还支持使用getHighlighter()。addHighlight()方法“突出显示”。在这种情况下,突出显示仍然是组件是否具有焦点。
如果您需要更多帮助,请发布展示问题的SSCCE。
答案 1 :(得分:0)
如果您真正想要的只是一个选择,而不是突出显示(行为不同),您可以使用JTextComponent.getCaret().setSelectionVisible(true)
。