import java.awt.*; import java.awt.event.*; public class CheckboxMenuItemTest extends Frame implements ActionListener, ItemListener { private static final String NEWLINE = System.getProperty("line.separator"); private TextArea output; public CheckboxMenuItemTest() { Menu m; MenuBar mb; CheckboxMenuItem mi; addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); setLayout(new BorderLayout()); output = new TextArea(5, 30); output.setEditable(false); add("Center", output); mb = new MenuBar(); setMenuBar(mb); m = new Menu("Menu"); mb.add(m); mi = new CheckboxMenuItem("Checkbox"); m.add(mi); m.addActionListener(this); mi.addItemListener(this); } public void actionPerformed(ActionEvent e) { output.append("\"" + e.getActionCommand() + "\" action detected in menu labeled \"" + ((MenuItem)(e.getSource())).getLabel() + "\"." + NEWLINE); } public void itemStateChanged(ItemEvent e) { output.append("Item state change detected on item \"" + e.getItem() + "\" (state is " + ((e.getStateChange() == ItemEvent.SELECTED)? "selected)." : "deselected).") + NEWLINE); } public static void main(String[] args) { CheckboxMenuItemTest t = new CheckboxMenuItemTest(); t.setSize(450, 200); t.setVisible(true); } }