2016-03-31 23 views
1

jTextAreaにdocumentListenerを追加しました。これは、textAreaが空のときはいつでもボタンを無効にする必要があります。 これは、textAreaが空の場合の開始点でのみ機能しますが、何かを入力してからtextArea.getText() == ""までのすべてのテキストを削除すると、ボタンは再び無効になりません。 これは私が書いたものである:textAreaが空のときにボタンが無効にならない

textArea.getDocument().addDocumentListener(new DocumentListener() { 
      @Override 
      public void insertUpdate(DocumentEvent e) { 

       if (textArea.getText() == null) { 
        disableButton(); 
       } else { 
        enableButton(); 
       } 



      } 

      @Override 
      public void removeUpdate(DocumentEvent e) { 

       if (textArea.getText() == null) { 
        disableButton(); 
       } else { 
        enableButton(); 
       } 

      } 

      @Override 
      public void changedUpdate(DocumentEvent e) { 

       if (textArea.getText() == null) { 
        disableButton(); 
       } else { 
        enableButton(); 
       } 
      } 

      public void enableButton() { 
       clearModelMenuItem.setEnabled(true); 
       discardModel.setEnabled(true); 
       increaseFontSize.setEnabled(true); 
       decreaseFontSize.setEnabled(true); 
       incMenuItem.setEnabled(true); 
       decMenuItem.setEnabled(true); 
      } 

は、ここでの問題は何ですか? 助けてくれてありがとう!

+0

変更 'textArea.getText()== textArea.getText()'へnull'なので。のisEmpty() '' – Jerry06

+1

問題はここにある何? ' - あなたの前の質問の多くであなたのSSCCEが尋ねられたのはどこですか?以前の質問で実行するように求められているように、テストしている変数の値を表示するデバッグコードはどこにありますか?質問を投稿する前に、あなた自身の基本的なデバッグを行います。 – camickr

答えて

3

これは、テキストが空であるかどうかを実際に確認していないためです。 nullかどうかを確認しています。空のStringnullStringの違いがあります。

あなたはそれが空だかどうかを確認したい場合は

if ("".equals(textArea.getText())) ... 

をチェックする必要があります。

(またnullをチェックすることをお勧めします。)

関連する問題