Java - проверьте, не является ли JTextField пустым или нет.

Итак, я понял, что это популярный вопрос и уже нашел решение. Но когда я пытаюсь это сделать, он работает неправильно.

My JTextField пуст, и кнопка не включена. Когда я пишу что-то в своем текстовом поле, кнопка не включается.

Итак, моя программа должна проверять это поле каждую секунду, пустое или нет. Как только кто-то что-то пишет в текстовое поле, кнопка должна быть включена. ^^

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

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

Ответы

Ответ 1

Для этого вам нужно добавить прослушиватель изменений (a 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);
    }

  }
});

Ответ 2

Далее возвращается значение true, если имя "JTextField" не содержит текста:

name.getText().isEmpty

Ответ 4

Ну, код, который делает кнопку включен/отключен:

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

должен быть записан в javax.swing.event.ChangeListener и прикреплен к полю (см. здесь). Изменение значения поля должно заставить слушателя пересмотреть состояние объекта. Что вы ожидали?

Ответ 5

Для проверки JTextFiled пусто или нет:

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

Ответ 6

используйте следующий код:

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

Ответ 7

Попробуйте это

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

Ответ 8

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

Ответ 9

Попробуйте с 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) {
        }

    });