2013-01-16 38 views
2

我为JTextField编写了自己的InputVerifier,它工作正常。现在,我想在用户单击按钮时在该文本字段上“强制”验证。有可能吗?JTextField验证

+1

验证可能在JTextField中,而不是来自JButton,以便更快地发布[SSCCE](http://sscce.org/) – mKorbel

+0

+1 mKorbel和疯狂的评论...请参见[this](http:/ /stackoverflow.com/questions/13563042/programmatically-trigger-a-key-events-in-a-jtextfield/13563314#13563314)类似的问题/答案。它显示了如何使用Robot类和'requestFocusInWindow()'按编程方式触发'JTextField' * enter *键,尽管我认为您需要的所有内容都是通过'requestFocusInWindow()'将焦点更改为文本字段和另一个组件。 。 –

+2

Java文档状态*“在焦点转移到请求它的另一个Swing组件之前,输入验证程序的shouldYieldFocus方法被调用。只有当该方法返回true时才会转移焦点”* – MadProgrammer

回答

2

作为@JarekMazur表示它解决了问题的答案。

再迭代我的评论:

+1 @MadProgrammer的文档

this类似问题/答案。它显示使用如何以编程方式触发JTextField输入使用Robot类和requestFocusInWindow()按键,但我认为你只需要后者。

尝试改变JTextField重点使用requestFocusInWindow()

您最初将请求重点放在JTextField上,而不是另一个组件以便触发Input VerifiershouldYieldFocus方法。

+0

这看起来像一个解决方法。如果我有几个控件与验证者,我应该转移焦点到他们所有的顺序?如果我可以使用'verifyAll'这样的方法,那将会很好。 Swing中没有那样的东西? – Jarekczek