With a registered MenuListener, you're notified when a JMenu is selected before the pop-up menu is opened with the menu's choices.
public interface MenuListener extends EventListener { public void menuCanceled(MenuEvent e); public void menuDeselected(MenuEvent e); public void menuSelected(MenuEvent e); }
import java.awt.event.KeyEvent; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.event.MenuEvent; import javax.swing.event.MenuListener; public class ContructMenuWithAction { public static void main(final String args[]) { JFrame frame = new JFrame("MenuSample Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JMenuBar menuBar = new JMenuBar(); // File Menu, F - Mnemonic JMenu fileMenu = new JMenu("File"); fileMenu.setMnemonic(KeyEvent.VK_F); menuBar.add(fileMenu); fileMenu.addMenuListener(new MenuListener() { public void menuSelected(MenuEvent e) { System.out.println("menuSelected"); } public void menuDeselected(MenuEvent e) { System.out.println("menuDeselected"); } public void menuCanceled(MenuEvent e) { System.out.println("menuCanceled"); } }); // File->New, N - Mnemonic JMenuItem newMenuItem = new JMenuItem("New"); fileMenu.add(newMenuItem); frame.setJMenuBar(menuBar); frame.setSize(350, 250); frame.setVisible(true); } }
14.21.JMenu | ||||
14.21.1. | The JMenu component is the basic menu item container that is placed on a JMenuBar | |||
14.21.2. | what menus look like | |||
14.21.3. | Adding a Menu to a Window | |||
14.21.4. | Add Separator to JMenu | |||
14.21.5. | Using Action Objects with Menus | |||
14.21.6. | Adding Menu Shortcuts | |||
14.21.7. | Set Mnemonic key | |||
14.21.8. | Submenu | |||
14.21.9. | Listening to JMenu Events with a ChangeListener: register a ChangeListener with a JMenu | |||
14.21.10. | Using MenuListener to listen to: menu canceled, selected and deselected events | |||
14.21.11. | Layout menu yourself | |||
14.21.12. | Customizing JMenu Look and Feel |