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

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

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

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

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

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

2 ответов


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

  }
});

следующее возвращает true, если JTextField "name" не