Swing焦点丢失了inputverifier

时间:2011-08-25 07:53:42

标签: java swing focus listeners inputverifier

我的框架上有一些JTextFields。当用户从JTextField标签出来时,我会在FocusTraversalPolicy中执行自定义逻辑,这会设置一些属性并根据它们FocusTraversalPolicy决定应该在哪里焦点去下一步。到目前为止一切都很好。

但我希望自定义逻辑每次都执行 JTextField失去焦点(在InputVerifier中,因为它还有验证)。

现在问题和问题:如果用户使用鼠标离开该字段,InputVerifier将被触发,一切都会好的。但是,如果用户按下TAB,则FocusTraversalPolicyInputVerifier都会被触发,自定义逻辑将被执行两次,这是我不想要的。如何在InputVerifier中检测到TAB已被按下并且不执行任何操作?我希望仅在使用鼠标留下字段时才在InputVerifier中执行自定义逻辑。或者有更好的解决方案吗?

希望我的问题很明确。

问候,Petar

1 个答案:

答案 0 :(得分:2)

如果执行自定义逻辑,我最终会从boolean设置FocusTraversalPolicy标记。然后在InputVerifier中,如果它已经执行,我不再执行它。然后我重置了旗帜。