在java中有没有忽略退格键的方法?
每当我在文本框中按backspace键时,就会触发此代码在java中有没有忽略退格键的方法?,java,Java,每当我在文本框中按backspace键时,就会触发此代码 private void txtAgeKeyTyped(java.awt.event.KeyEvent evt) { char agetext= evt.getKeyChar(); if(!(Character.isDigit(agetext))){ evt.consume(); JOptionP
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看看这个:它可能会帮助你。