import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.Document;
public class Main {
public Main() {
JButton button = new JButton("foo");
JTextField textField = new JTextField(10);
Document document = textField.getDocument();
document.addDocumentListener(new JButtonStateController(button));
JFrame frame = new JFrame();
frame.add(button,BorderLayout.WEST);
frame.add(textField,BorderLayout.CENTER);
frame.setSize(300,300);
frame.setVisible(true);
}
}
class JButtonStateController implements DocumentListener {
JButton button;
JButtonStateController(JButton button) {
this.button = button ;
}
public void changedUpdate(DocumentEvent e) {
disableIfEmpty(e);
}
public void insertUpdate(DocumentEvent e) {
disableIfEmpty(e);
}
public void removeUpdate(DocumentEvent e) {
disableIfEmpty(e);
}
public void disableIfEmpty(DocumentEvent e) {
button.setEnabled(e.getDocument().getLength() > 0);
}
}
|