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

时间:2017-07-08 17:55:38

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

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

出于某种原因,只要按下退格键,它就会触发。

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

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

1 个答案:

答案 0 :(得分:4)

退格符只是\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!");
    }
}