【问题标题】:Swing: Programmatically select a textSwing:以编程方式选择文本
【发布时间】:2010-05-06 16:53:45
【问题描述】:

我有一个非常简单的 Swing GUI,只有一个 JTetxtArea。我正在尝试使用以下方式以编程方式选择文本的一部分:

textArea.select(startSelection,endSelection);

这项工作。但是,一旦我向 GUI 添加了一些其他组件,我就再也看不到选择了

frame.getContentPane().add(button);     
frame.getContentPane().add(textArea);
textArea.select(startSelection,endSelection);

我怀疑在布局 gui 的过程中,某些事件会导致文本被取消选择。我对吗?有人可以提出解决方案吗?

我的目标是有一个显示文本的程序,并允许用户输入开始和结束选择位置,并在这两个位置之间出现选择。谢谢。

【问题讨论】:

  • 你不能确保 textArea.select 是在 框架布置好之后触发的吗?
  • 其实我举了一个简化的例子。我对一个 GUI 组件进行了子类化,并且对 select() 的调用发生在其中。我如何知道框架何时布局?

标签: java swing textarea selection


【解决方案1】:

文本选择仅在文本组件具有焦点时显示。

文本组件还支持使用 getHighlighter().addHighlight() 方法“突出显示”。在这种情况下,无论组件是否具有焦点,突出显示都会保留。

如果您需要更多帮助,请发布您的 SSCCE 来证明问题。

【讨论】:

    【解决方案2】:

    如果您真正想要的只是一个选择,而不是突出显示(行为不同),您可以使用JTextComponent.getCaret().setSelectionVisible(true)

    【讨论】:

      猜你喜欢
      • 2013-03-11
      • 1970-01-01
      • 1970-01-01
      • 2012-11-09
      • 2013-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-13
      相关资源
      最近更新 更多