2009-10-05 48 views
0

我有一個JTextField,我希望系統對用戶輸入的內容進行一些處理,只要用戶離開文本字段。但是,只能添加到JTextField的ActionListener纔會在用戶按下Enter時觸發。如何在用戶離開JTextBox時觸發一個動作?

我希望處理例程在用戶通過任何方式離開文本框時運行 - 選項卡,點擊它,按回車等。(所處理的問題是保存用戶鍵入的文本適當的數據對象,沒有什麼奇特的。)

我的谷歌福在這一個失敗:我相信這是可能的,我只是不能看到如何。

回答

6

Add a FocusListener

值得注意的是,這是一個相對較低級別的偵聽器。在JComboBox它不會工作,除非你找到特定的PL & F插入的文本字段(也許是按鈕)。擺動有點奇怪(在許多其他方面)。

儘管對於我的錢來說,當焦點離開某個領域時發生的非整容變化會給用戶帶來不好的體驗。對於文本字段文檔中的偵聽器的每次更改都做出更好的更改。

+1

啊哈! FocusListener是我隱約記得的東西。有問題的操作是保存用戶輸入的文本 - 是否更好地通過文檔上的監聽器來完成,您認爲呢? – 2009-10-06 00:09:40

+0

是的,但理智。您可能希望確保每次擊鍵都不保存整個文檔。保存之間的小休息時間(並且不重疊)。如果文檔很大(不太可能帶有'JTextField'),那麼大部分時間只需附加到日誌。話雖如此,移動領域可能是一個關於儲蓄更緊急一點的好時機。 – 2009-10-06 01:16:38

+0

爲了記錄,焦點監聽者完成了我所需要的工作。謝謝! – 2009-10-07 20:59:05

0

如果您想編輯鍵入的文本,那麼您應該使用DocumentFilter。

如果要將文本驗證爲完整實體,則可以使用InputVerifier。

相關問題