Из того, что я вижу в вашем коде, это может помочь в решении проблемы.В вашем коде ветвь 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);
}