Extend a ButtonModel in Java
Description
The following code shows how to extend a ButtonModel.
Example
// w ww.j a v a 2 s .co m
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonModel;
import javax.swing.DefaultButtonModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
public class Main {
public static void main(String[] args) {
final JButton ok = new JButton("ok");
JCheckBox cb = new JCheckBox("Enabled", true);
cb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (ok.isEnabled())
ok.setEnabled(false);
else
ok.setEnabled(true);
}
});
ButtonModel model = new DefaultButtonModel() {
public void setEnabled(boolean b) {
if (b)
System.out.println("Pressed: true");
else
System.out.println("Pressed: false");
super.setEnabled(b);
}
public void setArmed(boolean b) {
if (b)
System.out.println("Armed: true");
else
System.out.println("Armed: false");
super.setArmed(b);
}
public void setPressed(boolean b) {
if (b)
System.out.println("Pressed: true");
else
System.out.println("Pressed: false");
super.setPressed(b);
}
};
ok.setModel(model);
JFrame f = new JFrame();
f.setLayout(new FlowLayout());
f.add(ok);
f.add(cb);
f.setSize(350, 250);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
The code above generates the following result.
Home »
Java Tutorial »
Swing »
Java Tutorial »
Swing »