繁体   English   中英

JTextField Keylistener无法擦除输入

[英]JTextField Keylistener can't erase input

我有一个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(" ");
                   }
               }
 });

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

  if(Character.isDigit(ch)){
                JOptionPane.showMessageDialog(null, "Please Enter Only Names or Surnames. Letters Only Allowed");
             e.consume();
               }

TextField处理之前,您将获得该事件。 您可以做的是使用事件, TextField将不会接收它。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM