Mega Code Archive

 
Categories / Java Tutorial / Swing
 

Using Action Objects with Menus

Creating a specific implementation of AbstractAction and adds it to a JMenu multiple times 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);   } }