我正在使用以下代码来验证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

10-07 23:37