Java - 制作文本框不会失去焦点

时间:2012-04-03 17:03:30

标签: java swing

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

2 个答案:

答案 0 :(得分:6)

InputVerifier中描述的

Validating Input就是为此目的而设计的:

  

只要组件即将失去焦点,就会查询组件的输入验证程序。如果组件的值不可接受,输入验证器可以采取适当的操作,例如拒绝将焦点放在组件上......

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

答案 1 :(得分:2)

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