2016-11-26 14 views
1

Heyaみんな!ここノーランカ。

username jFieldから入力を削除したときにpassword jFieldを有効にしたまま、このコードを私のpassword jFieldに入れました。私はそれが障害になることに戻ることを望んだ。私はまだスターターなので、すみません。他のjTextフィールドがJavaで空の場合、jTextfieldを再び無効にする方法

private void usernameKeyTyped(java.awt.event.KeyEvent evt) {         
     String usern = username.getText(); 

     if(usern != null){ 
      password.setEnabled(true); 
     }else{ 
       password.setEnabled(false); 

      } 
    } 

私はそれに無限ループをコーディングしようとしたが、それだけで/閉じません応答を停止するために私の.jarファイルを作ったので、私は、NetBeans自体を閉じて再起動する必要がありました。 xDさん

usernamepasswordは道とpasswordによって両方のJTextFieldは基本的に、あなたはおそらく欲しい
if username != null then enable password but if username = null again then disable password again

答えて

1

は、ユーザ名フィールドが変更されたときに検出することができるようになりますdocument listenerあるデフォルト

では無効になっています適切な措置を取る。

私はこの回答をモバイルアプリで書いていますので、今すぐコードサンプルを提供するのは難しいです。

ユーザー名にリスナーを設定して、ユーザー名が空か空かをチェックし、そのチェックの結果に基づいてパスワードフィールドを有効または無効にします。

EDIT:

私はすぐに戻って私のコンピュータでだし、コードサンプルを提供することができています。下記を参照してください:属性が変更されたときに文書テキストの変更は、それが発生したときに、それが解雇されていないためchangedUpdateメソッドは何もしないことを

userNameTextBox.getDocument().addDocumentListener(new DocumentListener(){ 

    @Override 
    public void insertUpdate(DocumentEvent e) { 
     handleTextChange(); 
    } 

    @Override 
    public void removeUpdate(DocumentEvent e) { 
     handleTextChange(); 
    } 

    @Override 
    public void changedUpdate(DocumentEvent e) { 
     //Do nothing here 
    } 

    private void handleTextChange(){ 
     if(userNameTextBox.getText() == null || 
      userNameTextBox.getText().trim().length() == 0){ 
      passwordBox.setEnabled(false); 
     }else{ 
      passwordBox.setEnabled(true); 
     } 
    } 

}); 

注意。詳細については、the javadocを参照してください。

+0

答えの部分に別の[スレッド](http://stackoverflow.com/questions/17132452/java-check-if-jtextfield-is-empty-or-not)からこのコードスニペットがあります。コードからエラーがあり、DocumentEventがxDに見つからないと表示されます。とにかく、私をドキュメントリスナーに紹介してくれてありがとう。彼らをすっかり勉強します〜 –

+0

'DocumentEvent'クラスをインポートしましたか? –

+0

ああ、まだインポートするものがあります。 –

関連する問題