Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中有没有忽略退格键的方法?_Java - Fatal编程技术网

在java中有没有忽略退格键的方法?

在java中有没有忽略退格键的方法?,java,Java,每当我在文本框中按backspace键时,就会触发此代码 private void txtAgeKeyTyped(java.awt.event.KeyEvent evt) { char agetext= evt.getKeyChar(); if(!(Character.isDigit(agetext))){ evt.consume(); JOptionP

每当我在文本框中按backspace键时,就会触发此代码

private void txtAgeKeyTyped(java.awt.event.KeyEvent evt) {                                
        char agetext= evt.getKeyChar();
        if(!(Character.isDigit(agetext))){
            evt.consume();
            JOptionPane.showMessageDialog(null,"Age is only written in Numbers!");
        }
}
只有当我只输入字母而不是数字时,才会触发它

出于某种原因,每当我按下Backspace键时,它就会触发

有没有一种方法可以让我在不触发这段代码的情况下使用backspace


很抱歉,这是我第一次摆弄关键事件

退格字符只是\b。如您所见,VK_BACK_空间常数的定义如下:

public static final int VK_BACK_SPACE     = '\b';
该常量在java.awt.event.KeyEvent类中定义。顺便说一句,如果您使用IntelliJ,它将自动静态地为您导入该常量

您可以检查agetext是否为\b。如果是,则从方法返回:

private void txtAgeKeyTyped(java.awt.event.KeyEvent evt) {   
    char agetext= evt.getKeyChar();
    if (agetext == VK_BACK_SPACE) return;
    if(!(Character.isDigit(agetext))){
        evt.consume();
        JOptionPane.showMessageDialog(null,"Age is only written in Numbers!");
    }
}

退格字符只是\b。如您所见,VK_BACK_空间常数的定义如下:

public static final int VK_BACK_SPACE     = '\b';
该常量在java.awt.event.KeyEvent类中定义。顺便说一句,如果您使用IntelliJ,它将自动静态地为您导入该常量

您可以检查agetext是否为\b。如果是,则从方法返回:

private void txtAgeKeyTyped(java.awt.event.KeyEvent evt) {   
    char agetext= evt.getKeyChar();
    if (agetext == VK_BACK_SPACE) return;
    if(!(Character.isDigit(agetext))){
        evt.consume();
        JOptionPane.showMessageDialog(null,"Age is only written in Numbers!");
    }
}

这是什么方法?为什么会触发?请在你的问题中添加一些细节!如果我想在文本框中使用退格删除字符,则消息年龄仅用数字表示!看来我是用键盘输入的Netbeans@user3647634退格键被认为是一个数字吗?不,不是。这就是为什么您的if语句的计算结果为true,并且您可以看到age仅用数字表示@我想警察已经知道了。这就是为什么他/她试图使backspace不触发该方法。它是什么方法?为什么会触发?请在你的问题中添加一些细节!如果我想在文本框中使用退格删除字符,则消息年龄仅用数字表示!看来我是用键盘输入的Netbeans@user3647634退格键被认为是一个数字吗?不,不是。这就是为什么您的if语句的计算结果为true,并且您可以看到age仅用数字表示@我想警察已经知道了。这就是为什么他/她试图让backspace不触发该方法。有没有其他方法可以忽略backspace?就我而言,没有@user3647634@user3647634看看这个:这可能对你有帮助。有没有其他方法可以忽略退格?就我而言,没有@user3647634@user3647634看看这个:它可能会帮助你。