2010-08-04 66 views
0

在我的應用程序中,我有一個JTextField,它只允許用戶以特定格式輸入輸入。我有一個方法來檢查輸入的字段是否有效,如果沒有,它會顯示一個對話框。發生這種情況後,我希望焦點返回到文本字段,以便用戶可以糾正錯誤並輸入適當格式的輸入。我試圖通過讓JTextField調用requestFocus()本身來做到這一點,但這似乎只有一半工作。 JTextField顯示閃爍的光標,但我實際上不能輸入任何文本,直到我再次單擊文本字段。我需要調用另一種方法嗎?我在文檔中找不到任何其他內容。在警告對話框後返回JTextField進行編輯

+1

在API中它說「使用這種方法是不鼓勵的,因爲它的行爲是依賴於平臺的,相反,我們推薦使用'requestFocusInWindow()'」。你試過這個嗎? – 2010-08-04 19:47:52

回答

1

這不完全是您要求的解決方案,但您可能需要查看javax.swing.InputVerifier。此對象允許您驗證字段的輸入,並防止格式不正確時將焦點從焦點移開。我認爲這不會讓你舉出一個解釋錯誤的對話框(雖然它可能 - 嘗試它),但它肯定會允許你在'消息區域'中放置一條消息。

你要做的是在JComponent上設置InputVerifier,讓它測試內容的有效性;如果它不正確,那麼JComponent不會釋放焦點(並且可以寫入錯誤消息)。