我正在使用以下代码来验证JTextFields Text1和Text2中的文本。
private void Text1KeyPressed(java.awt.event.KeyEvent evt) {
Text1.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent EVT) {
if(EVT.getKeyCode() == EVT.VK_TAB){
String value = Text1.getText();
int l = value.length();
if (EVT.getKeyChar() >= '0' && EVT.getKeyChar() <= '9') {
Text1.setEditable(true);
} else {
Text1.setEditable(true);
Text2.setEditable(false);
label.setText("* Enter only numeric digits(0-9)");
}
}
}
});
当我尝试在Text1中输入错误的值后输入新的正确值时,Text2仍然无法编辑。我想念什么吗?
最佳答案
最好是使用数字格式器实现JFormattedTextField,允许输入小数点分隔符,负号和0-9范围内的数字,
监听TextComponents中的更改是否存在DocumentListener
示例here