Я не могу очистить JTextArea, как я могу очистить JTextArea? - PullRequest
0 голосов
/ 12 февраля 2019

Это прототип для виртуального терапевта, в основном для практики Java.Я пытался очистить это JTextArea в течение 2 дней.

Я убрал и восстановил, что помогло мне преодолеть несколько других препятствий, я не знаю, что попробовать.setEnabled() закодировано, потому что я просто пробовал его разными способами.Все кроме кнопки очистки работает нормально.Я получаю ответ в текстовой области после нажатия клавиши ввода с вводом JTextField.Но это просто не прояснится.

public void actionPerformed(ActionEvent event)
{

   String inp = event.toString(); //this is input in a JTextField

   if(inp.contains("sad") || inp.contains("lonely"))
   {
       txtArea.setText(response1);

   }else if(inp.contains(""))
   {
       txtArea.setText(response2);
   }

   else if(event.getSource() == clear) //clear is a button
   {
     //clear.setEnabled(true); 
     txtArea.setText(""); //I've tried selectAll(), replaceSelection()
   }
}

1 Ответ

0 голосов
/ 12 февраля 2019

Из того, что я вижу в вашем коде, это может помочь в решении проблемы.В вашем коде ветвь if для очистки никогда не может быть достигнута из-за else после условия (содержит пустую строку), которое всегда истинно.Я переместил его на передний план - так, чтобы он был доступен.

Я не могу точно сказать из вашего опубликованного кода, но event.toString () выглядит также подозрительно, как и последний (в измененном коде)ниже) условие, которое всегда верно.

   //this looks odd/suspicious to me too!
   String inp = event.toString(); //???!!! this is input in a JTextField
   /* rather something like 
    *  if(event.getSource() instanceof JTextField){
    *      inp = ((JTextField)event.getSource()).getText();
    *  }
    */
   if(event.getSource() == clear) { //clear is a button
     //clear.setEnabled(true); 
     txtArea.setText(""); //I've tried selectAll(), replaceSelection()

   } else if(inp.contains("sad") || inp.contains("lonely")) { 
       txtArea.setText(response1);

   } else if(inp.contains("")) { //??? always true!! rather: inp.equals("") or inp.isEmpty() ...
       txtArea.setText(response2);
   }
...