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 itemsimport 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 : 
Java
// Java program to add a menubar// and add menuitems, submenu items and also add// ActionListener to menu itemsimport 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:
