一尘不染

Java-检查JTextField是否为空

java

所以我知道这是一个很普遍的问题,已经找到了解决方案。但是,当我尝试这样做时,它无法正常工作。

我的JTextField为空,并且未启用该按钮。当我在文本字段中写入内容时,该按钮未启用。

因此,我的程序应每秒检查一次此字段是否为空。只要有人在文本字段中写入内容,就应启用该按钮。^^

loginbt = new JButton("Login");
    loginbt.addActionListener(new loginHandler());
    add(loginbt);

    if(name.getText().equals("")) {
        loginbt.setEnabled(false);
    }else {
        loginbt.setEnabled(true);
    }

阅读 307

收藏
2020-09-09

共1个答案

一尘不染

为此,您需要在中添加更改侦听器(一个DocumentListener响应文本更改的侦听器)JTextField,并且在内actionPerformed(),您需要loginButton根据是否JTextfield为空将其更新为enabled
/ disabled 。

以下是我从此线程中发现的内容。

yourJTextField.getDocument().addDocumentListener(new DocumentListener() {
  public void changedUpdate(DocumentEvent e) {
    changed();
  }
  public void removeUpdate(DocumentEvent e) {
    changed();
  }
  public void insertUpdate(DocumentEvent e) {
    changed();
  }

  public void changed() {
     if (yourJTextField.getText().equals("")){
       loginButton.setEnabled(false);
     }
     else {
       loginButton.setEnabled(true);
    }

  }
});
2020-09-09