JMenuBar, JMenu and JMenuItems are a part of Java Swing package. JMenuBar is an implementation of menu bar . the JMenuBar contains one or more JMenu objects, when the JMenu objects are selected they display a popup showing one or more JMenuItems . JMenu basically represents a menu . It contains several JMenuItem Object . It may also contain JMenu Objects (or submenu). Constructors :
- JMenuBar() : Creates a new MenuBar.
- JMenu() : Creates a new Menu with no text.
- JMenu(String name) : Creates a new Menu with a specified name.
- JMenu(String name, boolean b) : Creates a new Menu with a specified name and boolean value specifies it as a tear-off menu or not. A tear-off menu can be opened and dragged away from its parent menu bar or menu.
Commonly used methods:
- add(JMenu c) : Adds menu to the menu bar. Adds JMenu object to the Menu bar.
- add(Component c) : Add component to the end of JMenu
- add(Component c, int index) : Add component to the specified index of JMenu
- add(JMenuItem menuItem) : Adds menu item to the end of the menu.
- add(String s) : Creates a menu item with specified string and appends it to the end of menu.
- getItem(int index) : Returns the specified menuitem at the given index
The following programs will illustrate the use of JMenuBar 1. Program to make a MenuBar and add menu items to itÂ
Java
// Java program to construct // Menu bar to add menu items import java.awt.*; import javax.swing.*; import java.awt.event.*; public class menu extends JFrame {     // menubar     static JMenuBar mb; Â
    // JMenu     static JMenu x; Â
    // Menu items     static JMenuItem m1, m2, m3; Â
    // create a frame     static JFrame f; Â
    public static void main()     { Â
        // create a frame         f = new JFrame("Menu demo"); Â
        // create a menubar         mb = new JMenuBar(); Â
        // create a menu         x = new JMenu("Menu"); Â
        // create menuitems         m1 = new JMenuItem("MenuItem1");         m2 = new JMenuItem("MenuItem2");         m3 = new JMenuItem("MenuItem3"); Â
        // add menu items to menu         x.add(m1);         x.add(m2);         x.add(m3); Â
        // add menu to menu bar         mb.add(x); Â
        // add menubar to frame         f.setJMenuBar(mb); Â
        // set the size of the frame         f.setSize( 500 , 500 );         f.setVisible( true );     } } |
Output : 2. Program to add a menubar and add menuitems, submenu items and also add ActionListener to menu itemsÂ
Java
// Java program to add a menubar // and add menuitems, submenu items and also add // ActionListener to menu items import java.awt.*; import javax.swing.*; import java.awt.event.*; public class menu1 extends JFrame implements ActionListener {     // menubar     static JMenuBar mb; Â
    // JMenu     static JMenu x, x1; Â
    // Menu items     static JMenuItem m1, m2, m3, s1, s2; Â
    // create a frame     static JFrame f; Â
    // a label     static JLabel l; Â
    // main class     public static void main()     {         // create an object of the class         menu1 m = new menu1(); Â
        // create a frame         f = new JFrame("Menu demo"); Â
        // create a label         l = new JLabel("no task "); Â
        // create a menubar         mb = new JMenuBar(); Â
        // create a menu         x = new JMenu("Menu");         x1 = new JMenu("submenu"); Â
        // create menuitems         m1 = new JMenuItem("MenuItem1");         m2 = new JMenuItem("MenuItem2");         m3 = new JMenuItem("MenuItem3");         s1 = new JMenuItem("SubMenuItem1");         s2 = new JMenuItem("SubMenuItem2"); Â
        // add ActionListener to menuItems         m1.addActionListener(m);         m2.addActionListener(m);         m3.addActionListener(m);         s1.addActionListener(m);         s2.addActionListener(m); Â
        // add menu items to menu         x.add(m1);         x.add(m2);         x.add(m3);         x1.add(s1);         x1.add(s2); Â
        // add submenu         x.add(x1); Â
        // add menu to menu bar         mb.add(x); Â
        // add menubar to frame         f.setJMenuBar(mb); Â
        // add label         f.add(l); Â
        // set the size of the frame         f.setSize( 500 , 500 );         f.setVisible( true );     }     public void actionPerformed(ActionEvent e)     {         String s = e.getActionCommand(); Â
        // set the label to the menuItem that is selected         l.setText(s + " selected");     } } |
Output: Note : The following program might not run in an online compiler, please use an offline IDE.