Mega Code Archive

 
Categories / Java Tutorial / Swing
 

Based on JTextField content, enable or disable a JButton

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);   } }