Java – 检查JTextField是否为空

所以我知道这是一个受欢迎的问题,已经find了解决办法。 但是,当我尝试这个不能正常工作。

我的JTextField是空的,button没有启用。 当我在我的文本字段中写东西时,button不会启用。

所以我的程序应该每秒钟检查这个字段是否为空。 只要有人在文本框中写入内容,就应该启用该button。^^

loginbt = new JButton("Login"); loginbt.addActionListener(new loginHandler()); add(loginbt); if(name.getText().equals("")) { loginbt.setEnabled(false); }else { loginbt.setEnabled(true); } 

为此,您需要为JTextField添加更改侦听器(对文本中的更改起反应的DocumentListener ),而在actionPerformed() ,需要根据JTextfield是否为空来将loginButton更新为启用/禁用。

以下是我从这个线程find的。

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

如果JTextField“名称”不包含文本,则以下代码将返回true:

name.getText().isEmpty

你需要什么叫做Document Listener。 请参阅如何编写文档监听器 。

那么,渲染button启用/禁用的代码:

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

必须写在javax.swing.event.ChangeListener并附加到该字段(请参见此处 )。 字段值的改变应该触发监听器重新评估对象状态。 你期待什么?

检查JTextFiled是否为空或不条件:

 if( (billnotf.getText().length()==0)||(billtabtf.getText().length()==0)) 

使用下面的代码:

 if(name.getText().equals("")) { loginbt.disable(); } 

尝试这个

 if(name.getText() != null && name.getText().equals("")) { loginbt.setEnabled(false); } else { loginbt.setEnabled(true); } 
 if(name.getText().hashCode() != 0){ JOptionPane.showMessageDialog(null, "not empty"); } else{ JOptionPane.showMessageDialog(null, "empty"); } 

尝试在您的文本字段中使用keyListener

 jTextField.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e) { } @Override public void keyPressed(KeyEvent e) { if (text.getText().length() >= 1) { button.setEnabled(true); } else { button.setEnabled(false); } } @Override public void keyReleased(KeyEvent e) { } });