Java - 检查 JTextField 是否为空

新手上路,请多包涵

所以我知道这是一个受欢迎的问题并且已经找到了解决方案。但是当我尝试这个时它不能正常工作。

我的 JTextField 是空的,按钮未启用。当我在我的文本字段中写一些东西时,该按钮没有被启用。

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

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

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

原文由 ColdStormy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 789
2 个回答

为此,您需要为您的 JTextField 添加更改侦听器(一个 DocumentListener 对文本中的更改做出反应),并且在 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);
    }

  }
});

原文由 sanbhat 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

name.getText().isEmpty();

原文由 xulo 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题