我的框架上有一些JTextFields
。当用户从JTextField
中跳出时,我在FocusTraversalPolicy
中执行自定义逻辑,该逻辑设置了一些属性,并基于这些属性,FocusTraversalPolicy
决定下一步应将焦点移到哪里。到目前为止,一切都很好。
但是我希望每次JTextField
失去焦点时都执行此自定义逻辑(在InputVerifier
中,因为其中也包含验证)。
现在的问题和问题是:如果用户用鼠标离开该字段,则会触发InputVerifier
,一切都会好起来。但是,如果用户按下TAB
,则会同时触发FocusTraversalPolicy
和InputVerifier
,并且自定义逻辑将执行两次,这是我不希望的。如何在InputVerifier
中检测到TAB
已被按下并且什么都不执行?我只想在用鼠标离开字段时在InputVerifier
中执行自定义逻辑。还是有更好的解决方案?
希望我的问题清楚。
问候,Petar
最佳答案
如果执行自定义逻辑,我最终从boolean
设置了FocusTraversalPolicy
标志。然后在InputVerifier
中,如果它已经执行,我就不再执行它。然后我重置标志。