Java - 检查JTextField是否为空

时间:2013-06-16 10:43:29

标签: java swing jbutton jtextfield documentlistener

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

我的JTextField为空,并且未启用该按钮。当我在文本字段中写东西时,按钮不会启用。

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

loginbt = new JButton("Login");
    loginbt.addActionListener(new loginHandler());
    add(loginbt);

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

11 个答案:

答案 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) {
        }

    });