所以我知道这是一个流行的问题,并且已经找到了解决方案。但是当我尝试这个的时候,它不能正常工作。
我的JTextField为空,该按钮未启用。当我在我的文本字段中写一些东西的时候,按钮不会被激活。
所以我的程序应该每秒检查一次这个字段,不管它是否为空。只要有人在文本字段中输入内容,就应该启用该按钮。^^
loginbt = new JButton("Login");
loginbt.addActionListener(new loginHandler());
add(loginbt);
if(name.getText().equals("")) {
loginbt.setEnabled(false);
}else {
loginbt.setEnabled(true);
}
发布于 2013-06-16 18:47:55
为此,您需要为JTextField
添加change listener (对文本中的更改做出反应的DocumentListener
),并且在actionPerformed()
中,您需要根据JTextfield
是否为空将loginButton
更新为enabled/disabled。
下面是我从这个thread中找到的东西。
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);
}
}
});
发布于 2015-02-01 16:24:48
如果JTextField "name“不包含文本,则下面将返回true:
name.getText().isEmpty
发布于 2013-06-16 18:48:48
您需要的是一种叫做文档侦听器的东西。参见How to Write a Document Listener。
https://stackoverflow.com/questions/17132452
复制相似问题