Using Action Objects with Menus : JMenu « Swing « Java Tutorial






Creating a specific implementation of AbstractAction and adds it to a JMenu multiple times

Using Action Objects with Menus
import java.awt.Component;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;

class ShowAction extends AbstractAction {
  Component parentComponent;

  public ShowAction(Component parentComponent) {
    super("About");
    putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_A));
    this.parentComponent = parentComponent;
  }

  public void actionPerformed(ActionEvent actionEvent) {
    Runnable runnable = new Runnable() {
      public void run() {
        JOptionPane.showMessageDialog(parentComponent, "About Swing", "About Box V2.0",
            JOptionPane.INFORMATION_MESSAGE);
      }
    };
    EventQueue.invokeLater(runnable);
  }
}

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);

    // File->New, N - Mnemonic
    JMenuItem newMenuItem = new JMenuItem(new ShowAction(frame));
    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 WindowAdding a Menu to a Window
14.21.4.Add Separator to JMenuAdd Separator to JMenu
14.21.5.Using Action Objects with MenusUsing Action Objects with Menus
14.21.6.Adding Menu ShortcutsAdding Menu Shortcuts
14.21.7.Set Mnemonic keySet Mnemonic key
14.21.8.SubmenuSubmenu
14.21.9.Listening to JMenu Events with a ChangeListener: register a ChangeListener with a JMenuListening 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 eventsUsing MenuListener to listen to: menu canceled, selected and deselected events
14.21.11.Layout menu yourselfLayout menu yourself
14.21.12.Customizing JMenu Look and Feel