2012-08-03 16 views
-1

數字也輸入到名稱文本字段中,此代碼無法正常工作。請以身作則幫助我。對話框顯示只允許使用字符,但在對話框中單擊確定後數字也輸入到文本字段

Name_text.addKeyListener(new KeyAdapter() { 

     @Override 
     public void keyTyped(KeyEvent e) { 
      if(e.getKeyChar()>='0'&& e.getKeyChar()<='9'|| e.getKeyChar()>=33&& e.getKeyChar()<=47|| e.getKeyChar()>=58&& e.getKeyChar()<=64 || e.getKeyChar()>=91&& e.getKeyChar()<=96 || e.getKeyChar()>=123&& e.getKeyChar()<=127){ 
      JOptionPane.showMessageDialog(null, "enter characters only"); 
     } 
     } 
      }); 
+1

這裏有很多錯誤。 – 2012-08-03 14:21:22

回答

2

有很多更好的方法來實現你想要的。

退房JFormattedTextField

+0

其不夠充分,,,,, plz幫助例 – Anku 2012-08-03 14:29:05

+1

我不會爲你寫代碼。閱讀教程,嘗試一下示例,這不難遵循。 – 2012-08-03 14:30:02

+3

請修復卡住的','鍵並輸入所有字母,如'please'。 – 2012-08-03 14:38:24

2

您發佈的代碼只顯示一個對話框,抱怨數字都是不允許的(有一個醜陋的檢查,什麼是錯的正則表達式[0-9]),但它不會刪除輸入。

此外,在其他的答案說有內置的驗證機制或更好的方法,然後用KeyListener

  • JFormattedTextField是驗證用戶輸入的文本字段。它需要一些調整來提高可用性(例如參見this blogpost
  • 使用InputVerifier。這裏沒有鏈接,因爲我不是這個機制的粉絲。只要提到它的完整性
  • 使用DocumentListener instead of a KeyListener,它允許抑制某些輸入,同時還將使用拖放和拖放,當工作或複製粘貼這是不是你的KeyListener

例子的情況下,可以在鏈接中找到。

相關問題