Java-检查JTextField是否为空

Java-检查JTextField是否为空,java,swing,jbutton,jtextfield,documentlistener,Java,Swing,Jbutton,Jtextfield,Documentlistener,所以我知道这是一个很受欢迎的问题,并且已经找到了解决办法。但是当我尝试这个时,它不能正常工作 我的JTextField为空,按钮未启用。当我在文本字段中写入内容时,按钮不会被启用 所以我的程序应该每秒检查这个字段是否为空。一旦有人在文本字段中写入内容,按钮就应该启用^^ loginbt = new JButton("Login"); loginbt.addActionListener(new loginHandler()); add(loginbt); if(name.

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

我的JTextField为空,按钮未启用。当我在文本字段中写入内容时,按钮不会被启用

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

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
是否为空,将
登录按钮更新为启用/禁用

下面是我从中发现的


那么,呈现按钮启用/禁用的代码:

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

必须使用
javax.swing.event.ChangeListener编写并附加到字段(请参阅)。字段值的更改应触发侦听器重新评估对象状态。你期望什么?

你需要的是一种叫做文档监听器的东西。请参阅。

在文本字段中尝试使用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) {
        }

    });
试试这个

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

要检查JTextField是否为空,请执行以下操作:

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

使用以下代码:

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

如果JTextField“name”不包含文本,则以下内容将返回true:

name.getText().isEmpty
您可以使用
isEmpty()
isBlank()
方法了解您需要什么

if(name.getText().hashCode() != 0){
    JOptionPane.showMessageDialog(null, "not empty");
}
else{
    JOptionPane.showMessageDialog(null, "empty");
}

当且仅当length()为0时返回true


如果字符串为空或仅包含空白代码点,则返回true,否则返回false

this.name.getText().isBlank();
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt){
//提交按钮
字符串Fname=jTextField1.getText();
字符串Lname=jTextField2.getText();
String Desig=jTextField3.getText();
字符串Nic=jTextField4.getText();
字符串Phone=jTextField5.getText();
字符串Add=jTextArea1.getText();
字符串Dob=jTextField6.getText();
//字符串性别;
//形象
如果(Fname.hashCode()==0 | Lname.hashCode()==0 | | | Desig.hashCode()==0 | | Nic.hashCode()==0 | | Phone.hashCode()==0 | | Add.hashCode()==0)
{
showMessageDialog(null,“某些字段为空!”);
}
其他的
{
showMessageDialog(空,“确定”);
}
}

BTW,我将使用
loginbt.setEnabled(name.getText().length()!=0)-1 DocumentListener是首选方法。很少有理由使用KeyListener。这是使用AWT时的旧设计。此外,代码无论如何也无法工作,因为在生成按键事件时,文档中没有添加任何文本,因此在触发第一个事件时,长度仍然为0。感谢您的更正,我将在将来看到DocumentListener我想问如果按钮依赖于多个文本字段,程序是否会更改。我会使用相同的逻辑来定义动作,还是有其他方法来减少代码?谢谢你的时间!!然后创建一个“代码>文档记录器< /代码>实现,它处理那个按钮并将它们作为侦听器添加到所有的文本框中……是的…谢谢……忘记了基本的东西:冷你解释为什么你认为这是一个解决方案?嗨,HarinduLakshan,请考虑添加更多的信息来提高答案的质量。我喜欢这个。
this.name.getText().isEmpty();
this.name.getText().isBlank();