web-dev-qa-db-ja.com

Java-JTextFieldが空かどうかを確認する

だから、これはよくある質問であり、すでに解決策を見つけていることを知りました。しかし、これを試してみると、正しく動作しません。

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

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

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

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

そのためには、DocumentListenerの変更リスナー(テキストの変更に反応するJTextField)を追加する必要があります。また、actionPerformed()内で、loginButtonを更新して、JTextfieldが空かどうか。

以下は、これから見つけたものです thread

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);
    }

  }
});
30
sanbhat

JTextFieldの「名前」にテキストが含まれていない場合、以下はtrueを返します。

name.getText().isEmpty

11
Jacob

必要なのは、ドキュメントリスナーと呼ばれるものです。 ドキュメントリスナの作成方法 を参照してください。

4
Eng.Fouad

さて、ボタンを有効/無効にするコード:

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

javax.swing.event.ChangeListenerで記述し、フィールドに添付する必要があります( here を参照)。フィールドの値を変更すると、リスナーがトリガーされてオブジェクトの状態が再評価されます。何を期待していましたか?

3
darijan

次のコードを使用します。

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

JTextFiledが空であるかどうかを確認するには:

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

これを試して

if(name.getText() != null && name.getText().equals(""))
{
        loginbt.setEnabled(false);
}
else
{
        loginbt.setEnabled(true);
}
0
Aneeq Anwar
if(name.getText().hashCode() != 0){
    JOptionPane.showMessageDialog(null, "not empty");
}
else{
    JOptionPane.showMessageDialog(null, "empty");
}
0
Sijo Jose