【发布时间】:2010-09-06 02:27:51
【问题描述】:
我试过了,但是 JTextField 一直显示最后输入的键。我做错了什么?...
private void codigoKeyTyped(java.awt.event.KeyEvent evt) {
//codigo is the JTextField
String s = String.valueOf(evt.getKeyChar());
try{
Integer.parseInt(s);
}catch(Exception e){
codigo.setText("");
}
}
最后,我希望它删除最后一个字符并将整数值留在文本字段中。但我想在解决这个问题后会很简单。谢谢!
//回答!
感谢大家回答我的问题。最后我做了这个
private void codigoKeyTyped(java.awt.event.KeyEvent evt) {
char c = evt.getKeyChar();
if (! Character.isDigit(c)) {
evt.consume();
}
}
【问题讨论】:
-
谢谢!我说西班牙语,所以,我错了很多......对不起,谢谢!
-
您是否知道侦听 KeyEvent 并非在所有情况下都有效?还有其他输入法。如果您希望收到有关文本更改的通知,则应始终使用 DocumentListener。就像汤姆说的那样,在这种情况下 DocumentFilter 是正确的方法。
-
是的,我知道,但是,这对我的类来说只是一个简单的工作,这就足够了(这只是一个不超过 5 个字符的 JTextField,我不知道将所有代码放在这里)...但是我将学习如何使用 DocumentFilters,因为它似乎是最好的方法。我在 Java(大约两周)和编程(6 个月)方面完全是新手,所以,我不会用最好的表达方式来做事。我希望有一天我会。感谢您的回答!
标签: java swing validation