所以我知道这是一个很普遍的问题,已经找到了解决方案。但是,当我尝试这样做时,它无法正常工作。
我的JTextField为空,并且未启用该按钮。当我在文本字段中写入内容时,该按钮未启用。
因此,我的程序应每秒检查一次此字段是否为空。只要有人在文本字段中写入内容,就应启用该按钮。^^
loginbt = new JButton("Login"); loginbt.addActionListener(new loginHandler()); add(loginbt); if(name.getText().equals("")) { loginbt.setEnabled(false); }else { loginbt.setEnabled(true); }
为此,您需要在中添加更改侦听器(一个DocumentListener响应文本更改的侦听器)JTextField,并且在内actionPerformed(),您需要loginButton根据是否JTextfield为空将其更新为enabled / disabled 。
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); } } });