package menuItems; import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JCheckBoxMenuItem; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JRadioButtonMenuItem; import javax.swing.JTextField; public class JMenuItemDemoComposite extends JFrame { public static void main(String args[]) { JMenuItemDemoComposite window = new JMenuItemDemoComposite(); window.setVisible(true); } public JMenuItemDemoComposite() { setSize(200, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JMenuItem menu = new JMenu("Composite"); menu.setMnemonic('C'); // Open with alt-C // Add a few leafs JLabel label = new JLabel("Label"); JTextField textF = new JTextField("text field"); JMenuItem menuItem = new JMenuItem("menu item"); menu.add(label); menu.add(textF); menu.add(menuItem); JMenuItem jmi1Nest = new JMenu("Nest 1"); menu.add(jmi1Nest); JMenuItem jmiNested1 = new JMenuItem("Nested in 1"); jmi1Nest.add(jmiNested1); JMenuItem jmiNested2 = new JMenuItem("Nested in 1 also"); jmi1Nest.add(jmiNested2); JMenuItem checkBox = new JCheckBoxMenuItem("Human", false); JMenuItem radioButton = new JRadioButtonMenuItem("Computer", true); menu.add(checkBox); menu.add(radioButton); JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar); menuBar.add(menu); MenuThingiesListener listener = new MenuThingiesListener(); jmiNested1.addActionListener(listener); jmiNested2.addActionListener(listener); textF.addActionListener(listener); menuItem.addActionListener(listener); checkBox.addActionListener(listener); radioButton.addActionListener(listener); } private class MenuThingiesListener implements ActionListener { public void actionPerformed(ActionEvent event) { Component source = (Component) event.getSource(); System.out.println("Component type: " + source.getClass()); } } }