所以我知道这是一个很受欢迎的问题,已经找到了解决方案。但是,当我尝试这个时,它无法正常工作。
我的JTextField为空,并且未启用该按钮。当我在文本字段中写东西时,按钮不会启用。
所以我的程序应该每秒检查一次该字段是否为空。只要有人在文本字段中写入内容,就应该启用该按钮。^^
loginbt = new JButton("Login");
loginbt.addActionListener(new loginHandler());
add(loginbt);
if(name.getText().equals("")) {
loginbt.setEnabled(false);
}else {
loginbt.setEnabled(true);
}
答案 0 :(得分:30)
为此,您需要为DocumentListener
添加更改侦听器(JTextField
对文本中的更改作出反应),并且在actionPerformed()
内,您需要更新{{1}启用/禁用取决于loginButton
是否为空。
以下是我从thread找到的内容。
JTextfield
答案 1 :(得分:11)
如果JTextField" name"以下内容将返回true不包含文字:
name.getText().isEmpty
答案 2 :(得分:4)
你需要的是一种叫做文件监听器的东西。请参阅How to Write a Document Listener。
答案 3 :(得分:3)
嗯,启用/禁用按钮的代码:
if(name.getText().equals("")) {
loginbt.setEnabled(false);
}else {
loginbt.setEnabled(true);
}
必须写在javax.swing.event.ChangeListener
中并附加到该字段(请参阅here)。字段值的更改应触发侦听器重新评估对象状态。你有什么期望?
答案 4 :(得分:2)
检查TextField是否为空:
if( (billnotf.getText().length()==0)||(billtabtf.getText().length()==0))
答案 5 :(得分:2)
使用以下代码:
if(name.getText().equals(""))
{
loginbt.disable();
}
答案 6 :(得分:0)
试试这个
if(name.getText() != null && name.getText().equals(""))
{
loginbt.setEnabled(false);
}
else
{
loginbt.setEnabled(true);
}
答案 7 :(得分:0)
if(name.getText().hashCode() != 0){
JOptionPane.showMessageDialog(null, "not empty");
}
else{
JOptionPane.showMessageDialog(null, "empty");
}
答案 8 :(得分:0)
您可以根据需要使用isEmpty()
或isBlank()
方法。
仅在length()为0时返回true。
this.name.getText().isEmpty();
如果字符串为空或仅包含空格代码点,则返回true;否则返回false
this.name.getText().isBlank();
答案 9 :(得分:0)
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
// Submit Button
String Fname = jTextField1.getText();
String Lname = jTextField2.getText();
String Desig = jTextField3.getText();
String Nic = jTextField4.getText();
String Phone = jTextField5.getText();
String Add = jTextArea1.getText();
String Dob = jTextField6.getText();
// String Gender;
// Image
if (Fname.hashCode() == 0 || Lname.hashCode() == 0 || Desig.hashCode() == 0 || Nic.hashCode() == 0 || Phone.hashCode() == 0 || Add.hashCode() == 0)
{
JOptionPane.showMessageDialog(null, "Some fields are empty!");
}
else
{
JOptionPane.showMessageDialog(null, "OK");
}
}
答案 10 :(得分:-1)
在文本字段中尝试使用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) {
}
});