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