Java Swing How to - Add change listener to Button model








Question

We would like to know how to add change listener to Button model.

Answer

import javax.swing.ButtonModel;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
/* ww w .  java 2  s. c  o  m*/
public class Main {
  public static void main(String[] args) {
    JButton button = new JButton("Test");
    ButtonModel model = button.getModel();
    model.addChangeListener(new ChangeListener() {
      public void stateChanged(ChangeEvent e) {
        System.out.println("Armed: " + model.isArmed() + " Enabled: "
            + model.isEnabled() + " Pressed: " + model.isPressed());
      }
    });

    JOptionPane.showMessageDialog(null, button);
  }
}