java - 有没有办法忽略java中的退格键?

标签 java

<分区>

每当我在文本框中按下退格键时,都会触发此代码。

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!");
        }
}

只有在我输入字母而不是数字时才会触发它。

出于某种原因,每当我按下退格键时它都会触发。

有没有办法让我在不触发这段代码的情况下使用退格键?

对不起,这是我第一次摆弄关键事件

最佳答案

退格符就是\b。如您所见,VK_BACK_SPACE 常量定义如下:

public static final int VK_BACK_SPACE     = '\b';

该常量在 java.awt.event.KeyEvent 类 btw 中定义。如果您使用 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!");
    }
}

关于java - 有没有办法忽略java中的退格键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44989205/

相关文章:

java - Tomcat 没有为其内部日志记录选择 Log4j 配置

java - 将值传递给 Shiro ini 中的枚举属性

java - 终结器 : Binder has been finalized, android keystore 引发的未捕获异常

java - 一段时间后取消 AsyncTask

java - 无法打印年薪。我究竟做错了什么?

java - eclipse 提示 getSystemCpuLoad 方法在 Java 8 的 OperatingSystemMXBean 中不可用?

java - 如何将字符串格式的字节数组转换为字节数组?

java - 从 FileInputStream 获取 File 对象

java - 为什么 System.out.println 出现故障?

java - 如何使用 Selenium WebDriver 截取屏幕截图