import java.awt.*; import java.awt.event.*; import com.sun.java.swing.JCheckBox; import com.sun.java.swing.JPanel; import com.sun.java.swing.JFrame; import com.sun.java.swing.event.ChangeListener; import com.sun.java.swing.event.ChangeEvent; /** * An application that displays two JCheckBoxes. */ public class CheckBoxDemo extends JPanel { static JFrame frame; static String first = new String("Button 1"); static String second = new String("Button 2"); public CheckBoxDemo() { // Create the buttons. JCheckBox firstButton = new JCheckBox(first); firstButton.setMnemonic('1'); firstButton.setActionCommand(first); firstButton.setSelected(true); JCheckBox secondButton = new JCheckBox(second); secondButton.setMnemonic('2'); secondButton.setActionCommand(second); // Register a listener for the check boxes. CheckBoxListener myListener = new CheckBoxListener(); firstButton.addActionListener(myListener); firstButton.addChangeListener(myListener); firstButton.addItemListener(myListener); secondButton.addActionListener(myListener); secondButton.addChangeListener(myListener); secondButton.addItemListener(myListener); add(firstButton); add(secondButton); } /** Listens to the check boxes. */ class CheckBoxListener implements ItemListener, //only event type needed ActionListener, //for curiosity only ChangeListener { //for curiosity only public void itemStateChanged(ItemEvent e) { System.out.println("ItemEvent received: " + e.getItem() + " is now " + ((e.getStateChange() == ItemEvent.SELECTED)? "selected." : "unselected.")); } public void actionPerformed(ActionEvent e) { String factoryName = null; System.out.print("ActionEvent received: "); if (e.getActionCommand() == first) { System.out.println(first + " pressed."); } else { System.out.println(second + " pressed."); } } public void stateChanged(ChangeEvent e) { System.out.println("ChangeEvent received from: " + e.getSource()); } } public static void main(String s[]) { WindowListener l = new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }; frame = new JFrame("CheckBoxDemo"); frame.addWindowListener(l); frame.getContentPane().add("Center", new CheckBoxDemo()); frame.pack(); frame.setVisible(true); } }