我的框架上有一些JTextFields
。当用户从JTextField
标签出来时,我会在FocusTraversalPolicy
中执行自定义逻辑,这会设置一些属性并根据它们FocusTraversalPolicy
决定应该在哪里焦点去下一步。到目前为止一切都很好。
但我希望自定义逻辑每次都执行 JTextField
失去焦点(在InputVerifier
中,因为它还有验证)。
现在问题和问题:如果用户使用鼠标离开该字段,InputVerifier
将被触发,一切都会好的。但是,如果用户按下TAB
,则FocusTraversalPolicy
和InputVerifier
都会被触发,自定义逻辑将被执行两次,这是我不想要的。如何在InputVerifier
中检测到TAB
已被按下并且不执行任何操作?我希望仅在使用鼠标留下字段时才在InputVerifier
中执行自定义逻辑。或者有更好的解决方案吗?
希望我的问题很明确。
问候,Petar
答案 0 :(得分:2)
如果执行自定义逻辑,我最终会从boolean
设置FocusTraversalPolicy
标记。然后在InputVerifier
中,如果它已经执行,我不再执行它。然后我重置了旗帜。