每当我在文本框中按退格键时,都会触发此代码。
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!");
}
}
只有在我输入字母而不是数字时才会触发它。
出于某种原因,只要按下退格键,它就会触发。
我有没有办法在不触发这段代码的情况下使用退格键?
对不起,这是我第一次摆弄关键事件
答案 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!");
}
}