【发布时间】:2011-11-03 10:47:26
【问题描述】:
我有一个框架,上面有一些JTextFields。当用户从JTextField 中退出时,我在FocusTraversalPolicy 中执行自定义逻辑,它设置了一些属性并基于它们FocusTraversalPolicy 决定接下来应该关注的地方。到目前为止一切顺利。
但我希望这个自定义逻辑执行每次JTextField失去焦点(在InputVerifier中,因为其中也有验证)。
现在的问题和问题:如果用户用鼠标离开字段,InputVerifier 将被触发,一切都会好起来的。但是如果用户按下TAB,FocusTraversalPolicy 和InputVerifier 都将被触发,自定义逻辑 将被执行两次,这是我不想要的。如何在InputVerifier 中检测到TAB 已被按下并且不执行任何操作?我只想在鼠标离开该字段时执行InputVerifier 中的自定义逻辑。还是有更好的解决方案?
希望我的问题很清楚。
问候,佩塔尔
【问题讨论】:
-
hmmm 可能同时有(JTextFields)另一个监听器(Focus/Document),删除它并在需要时添加,如何实现 notify();请检查并阅读tips4java.wordpress.com/?s=focus,尤其是tips4java.wordpress.com/2010/03/14/dialog-focus,tips4java.wordpress.com/2010/05/09/scrolling-a-form,tips4java.wordpress.com/2010/02/21/formatted-text-field-tips
标签: java swing focus listeners inputverifier