如何在单击Tab键或单击其他字段时验证用户输入?

时间:2015-08-09 03:45:25

标签: java swing actionlistener jtextfield netbeans-8.1

我正在尝试使用Netbeans 8.1为jTextField创建一个actionListener。 我做了以下:创建文本域然后右键单击>活动与GT;行动>的actionPerformed。
它为我构建了以下代码:

jTextField1.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
          jTextField1ActionPerformed(evt);
      }
});

private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {                                            
    // TODO add your handling code here:
   jTextField1.setText("Box1");
} 

但它不起作用!我试图手动编码但仍然无法正常工作。

仅供参考:CheckBox和单选按钮的ActionListener - 在同一个面板中 - 工作正常,但不是文本字段!

1 个答案:

答案 0 :(得分:1)

使用焦点更改侦听器,以防您在单击选项卡或其他字段后进行检查。

jTextField1.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
        }
        public void focusLost(java.awt.event.FocusEvent evt) {
          //this will be called on tab i.e when the field looses focus
              jTextField1FocusLost(evt);
        }
    });

private void jTextField1FocusLost(java.awt.event.FocusEvent evt) {                                    
    jTextField1.setText("Box1");
}

您也可以按照@MadProgrammer

的建议使用InputVerifier