Java - 检查JTextField是否为空

Col*_*rmy 21 java swing jbutton jtextfield documentlistener

所以我知道这是一个很受欢迎的问题,已经找到了解决方案.但是,当我尝试这个时,它无法正常工作.

我的JTextField为空,并且未启用该按钮.当我在文本字段中写东西时,按钮不会启用.

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

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

    if(name.getText().equals("")) {
        loginbt.setEnabled(false);
    }else {
        loginbt.setEnabled(true);
    }
Run Code Online (Sandbox Code Playgroud)

san*_*hat 31

为此,您需要添加更改侦听器(DocumentListener对文本中的更改做出反应)JTextField,并且在内部actionPerformed(),您需要loginButton根据是否JTextfield为空来更新启用/禁用.

以下是我从这个帖子中找到的内容.

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);
    }

  }
});
Run Code Online (Sandbox Code Playgroud)


小智 13

如果JTextField"name"不包含文本,则以下内容将返回true:

name.getText().isEmpty