Вот как бы я это сделал:
Создание одного анонимного прослушивателя, который проверяет, являются ли поля пустыми, и соответственно устанавливает состояние кнопки (например):
DocumentListener listener = new DocumentListener() {
public void changedUpdate(DocumentEvent e) {
updateButton();
}
public void insertUpdate(DocumentEvent e) {
updateButton();
}
private void updateButton() {
boolean all_blank = tf1.getText().isEmpty() &&
tf2.getText().isEmpty() &&
tf3.getText().isEmpty();
button.setEnabled(!all_blank);
}
public void removeUpdate(DocumentEvent e) {
updateButton();
}
};
А затем присоедините его ко всем полям:
tf1.getDocument().addDocumentListener(listener);
tf2.getDocument().addDocumentListener(listener);
tf3.getDocument().addDocumentListener(listener);
Примечание. Как уже упоминал Eng.Fouad, KeyListener не запускается при вставке, поэтому я изменил его на DocumentListener