Java Swing | JMenuBar

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:
				
					


