2

当有人输入数字而不是字母时,我有一个 JTextField 可以正常工作。我唯一的问题是那个数字不会消失。用户不能输入任何其他数字,但最后按下的数字始终保留在字段中!为什么?

    searchF.addKeyListener(new KeyAdapter(){
            public void keyTyped(KeyEvent e){
                char ch = e.getKeyChar();
                if(Character.isDigit(ch)){
                    searchF.setText(" ");
                    JOptionPane.showMessageDialog(null, "Please Enter Only Names or Surnames. Letters Only Allowed");
                    searchF.setText(" ");
                   }
               }
 });
4

3 回答 3

4

当有人输入数字而不是字母时,我有一个 JTextField 可以正常工作。我唯一的问题是那个数字不会消失。

于 2013-10-07T12:36:10.653 回答
3

您将在事件由TextField. 您可以做的是使用该事件,这样TextField就不会收到它。

(更好的方法可能是 a DocumentFilter,您仍然可以使用 将数字复制粘贴到TextFieldKeyListener

于 2013-10-07T12:34:23.587 回答
3

这是解决问题的另一种方法,如果它是数字,则使用键事件,这样用户不会丢失他们的输入,但您仍然会收到消息。

  if(Character.isDigit(ch)){
                JOptionPane.showMessageDialog(null, "Please Enter Only Names or Surnames. Letters Only Allowed");
             e.consume();
               }
于 2013-10-07T12:36:21.027 回答