Originariamente inviato da andbin
La soluzione è: DocumentListener! Vedi Document e il suo metodo addDocumentListener().
Grazie per la dritta! Sono andato a documentarmi ed ho scritto questa piccola classe:
codice:
package com.javastaff.alessandro.jcodecollector.gui.document;
import javax.swing.JButton;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.JTextComponent;
public class EditorValidatorListener implements DocumentListener {
private JTextComponent[] components;
private JButton button;
public EditorValidatorListener(JTextComponent[] components, JButton button) {
this.components = components.clone();
this.button = button;
}
public void changedUpdate(DocumentEvent e) {
check();
}
public void insertUpdate(DocumentEvent e) {
check();
}
public void removeUpdate(DocumentEvent e) {
check();
}
private void check() {
boolean enabled = true;
for (JTextComponent c : components) {
enabled &= c.getDocument().getLength() > 0;
}
button.setEnabled(enabled);
}
}
Ho fatto alcuni test e sembra funzionare correttamente! Grazie and