2015-08-09 43 views
2

我正在嘗試爲jTextField創建一個actionListener使用Netbeans 8.1。 我做了以下操作:創建文本字段,然後右鍵單擊>事件>操作> ActionPerformed。
它專爲我下面的代碼:如何驗證用戶輸入一旦他們點擊標籤鍵或點擊另一個字段?

jTextField1.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      jTextField1ActionPerformed(evt); 
     } 
}); 

private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {            
    // TODO add your handling code here: 
    jTextField1.setText("Box1"); 
} 

,但它不工作!我試圖手動編碼它,但仍然無法工作。

FYI:CheckBox和Radio按鈕的ActionListener-在同一個面板中工作正常,但不是文本字段!

+1

的'ActionListener'所建議的'JTextField'將被觸發,當用戶按下[Enter]鍵,同時現場有鍵盤焦點 – MadProgrammer

+0

你對 ! @MadProgrammer。謝謝!所以問題將是:我如何驗證用戶輸入一旦他們點擊標籤鍵或點擊另一個領域? –

+2

使用'InputVerifer',例如參見[驗證輸入](http://docs.oracle.com/javase/tutorial/uiswing/misc/focus.html#inputVerification) – MadProgrammer

回答

1

使用焦點更改偵聽器,以防您想要在點擊選項卡或其他字段後檢查。

jTextField1.addFocusListener(new java.awt.event.FocusAdapter() { 
     public void focusGained(java.awt.event.FocusEvent evt) { 
     } 
     public void focusLost(java.awt.event.FocusEvent evt) { 
      //this will be called on tab i.e when the field looses focus 
       jTextField1FocusLost(evt); 
     } 
    }); 

private void jTextField1FocusLost(java.awt.event.FocusEvent evt) {          
    jTextField1.setText("Box1"); 
} 

可以使用InputVerifier也@MadProgrammer

+0

+1它的工作標籤按下,但我正在尋找,而用戶按下標籤或輸入按鈕,然後JTextField值應該被檢查。 –

相關問題