2013-01-16 36 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