Java Swing:单击特定按钮时忽略文本框焦点丢失事件

Java Swing:单击特定按钮时忽略文本框焦点丢失事件,java,swing,jtextcomponent,documentlistener,focuslistener,Java,Swing,Jtextcomponent,Documentlistener,Focuslistener,我有一个swing文本框,其中包含一个在focuslost事件上验证的值。 表单还有许多其他控件,包括“取消”按钮。 我希望跳过验证,以防由于单击“取消”按钮而丢失焦点。 如何做到这一点?我建议删除在focusLost上执行验证的代码,或者在DocumentListener中实现验证,或者选择具有内置验证的JFormattedTextField 另外,从用户的角度来看,我更喜欢即时验证,而不是关注焦点丢失。当我开始打字时,很高兴看到您的输入变得不正确。此外,当存在无效输入时,您可以选择禁用“确定

我有一个swing文本框,其中包含一个在focuslost事件上验证的值。 表单还有许多其他控件,包括“取消”按钮。 我希望跳过验证,以防由于单击“取消”按钮而丢失焦点。
如何做到这一点?

我建议删除在
focusLost
上执行验证的代码,或者在
DocumentListener
中实现验证,或者选择具有内置验证的
JFormattedTextField


另外,从用户的角度来看,我更喜欢即时验证,而不是关注焦点丢失。当我开始打字时,很高兴看到您的输入变得不正确。此外,当存在无效输入时,您可以选择禁用“确定”按钮,而只启用“取消”按钮。当然,这要求您的验证不会弹出消息,而只是在输入字段中/旁边添加一个指示

我建议删除在
focusLost
上执行验证的代码,或者在
DocumentListener
中执行验证,或者选择具有内置验证的
JFormattedTextField


另外,从用户的角度来看,我更喜欢即时验证,而不是关注焦点丢失。当我开始打字时,很高兴看到您的输入变得不正确。此外,当存在无效输入时,您可以选择禁用“确定”按钮,而只启用“取消”按钮。这当然要求您的验证不会弹出消息,而只是在输入字段中/旁边添加一个指示

您可以随时检查FocusEvent的相反组件,但这通常不是真正可维护的。@Guillaume:您的建议对我有效。黑的和不可维护的,但做的把戏。如果您添加它作为答案,我会接受。您可以随时检查FocusEvent的相反组件,但这通常不是真正可维护的。@Guillaume:您的建议对我很有用。黑的和不可维护的,但做的把戏。如果你把它作为一个答案,我会接受的。一些验证可能是昂贵的,当做按键。否则,就需要一些有价值的建议。在键盘上进行某些验证可能会花费高昂。否则,我们将提出宝贵的建议。