我的框架上有一些JTextFields。当用户从JTextField中跳出时,我在FocusTraversalPolicy中执行自定义逻辑,该逻辑设置了一些属性,并基于这些属性,FocusTraversalPolicy决定下一步应将焦点移到哪里。到目前为止,一切都很好。

但是我希望每次JTextField失去焦点时都执行此自定义逻辑(在InputVerifier中,因为其中也包含验证)。

现在的问题和问题是:如果用户用鼠标离开该字段,则会触发InputVerifier,一切都会好起来。但是,如果用户按下TAB,则会同时触发FocusTraversalPolicyInputVerifier,并且自定义逻辑将执行两次,这是我不希望的。如何在InputVerifier中检测到TAB已被按下并且什么都不执行?我只想在用鼠标离开字段时在InputVerifier中执行自定义逻辑。还是有更好的解决方案?

希望我的问题清楚。

问候,Petar

最佳答案

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

08-06 10:55