1. ホーム
  2. java

[解決済み] Java - JTextFieldが空かどうかを確認する

2022-03-04 11:08:10

質問

これはよくある質問で、すでに解決策も見つかっていることを知りました。しかし、私がこれを試したとき、それは正しく動作しません。

私のJTextFieldは空で、ボタンは有効ではありません。テキストフィールドに何かを書いても、ボタンが有効になりません。

そこで、私のプログラムは、このフィールドが空かどうかを1秒ごとにチェックする必要があります。誰かがテキストフィールドに何かを書き込むと、すぐにボタンが有効になるはずです。

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

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

解決方法は?

そのためには、チェンジリスナー( 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);
    }

  }
});