【问题标题】:Java - making a textbox not lose focusJava - 使文本框不会失去焦点
【发布时间】:2012-04-03 17:03:29
【问题描述】:

我有几个不同的输入文本框,您可以在其中输入命令,按回车键,然后它会提取一些信息。我有几个不同的文本框(适用于信息的不同部分)。当我按下回车键时,它也会将焦点移到下一个输入框上。我该如何阻止这个?我不能简单地在 keyevent 类中使用 consume() 方法,因为这会完全阻止 enter 键,这不是我想要的

【问题讨论】:

  • 为什么不在keyvent.getKeyCode() == KeyEvent.VK_ENTER 上使用keyevent.consume(),并调用从KeyListener 中提取信息的方法?或者Enter 键是否比拉取和显示信息更有趣?
  • 你试过requestFocusInWindow(...)吗?
  • stackoverflow.com/questions/1068853/… 读起来很有趣。 akf接受的答案实现了我的建议,camickr键绑定解决方案也很好。
  • @AnthonyAccioly 我正在修改别人的应用程序,所以我还不是很清楚。稍后我会看看你的建议

标签: java swing


【解决方案1】:

InputVerifier,在Validating Input 中描述,正是为此目的而设计的:

只要组件即将失去焦点,就会查询组件的输入验证器。如果组件的值不可接受,输入验证者可以采取适当的行动,例如拒绝让出对组件的关注……

附录:正如文章Text Validation 中所建议的,InputVerifier 应该是验证的一个组成部分,旨在让用户立即知道为什么会出现问题。

【讨论】:

  • 一如既往的非常好的答案;)。现在让我们等待 camickr 呵呵呵呵。
  • “现在让我们等待 camickr..” Last seen 2 月 21 日。
  • @Andrew,camickr 和trashgod 倾向于一起出现在我写/评论过的帖子中,这是个玩笑。但是让我停止污染 stackoverflow 呵呵。
【解决方案2】:

实际上,我刚刚发现了如何解决这个问题。我使用了属于 Container 的名为 requestFocus() 的方法(参见http://www.javaworld.com/javaworld/jw-07-1998/jw-07-swing-focus.html)。在每个元素中,我将此行添加到 keyEvent 操作的末尾,并且效果很好!

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-16
  • 1970-01-01
  • 1970-01-01
  • 2015-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多