2016-03-31 7 views
1

Я добавил documentListener в jTextArea, который должен отключать кнопку всякий раз, когда 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() == null' к' textArea.getText(). IsEmpty() '' – Jerry06

+1

Что здесь проблема? ' - где ваш SSCCE, как вы просили во многих своих предыдущих вопросах ??? Где ваш код отладки, который отображает значение переменной, которую вы тестируете, как вы просили сделать в предыдущих вопросах? Сделайте свою собственную основную отладку перед отправкой вопроса. – camickr

ответ

3

Это потому, что вы на самом деле не проверяете, пустой ли текст; вы проверяете, null. Существует разница между String, которая пуста, и String, это null.

Вы должны проверять

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

, если вы хотите, чтобы проверить, является ли он пуст.

(Вы также можете проверить null.)