Skip to content
Related Articles

Related Articles

Java Swing | JMenuBar
  • Last Updated : 07 May, 2018

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 :

  1. JMenuBar() : Creates a new MenuBar.
  2. JMenu() : Creates a new Menu with no text.
  3. JMenu(String name) : Creates a new Menu with a specified name.
  4. 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:

  1. add(JMenu c) : Adds menu to the menu bar. Adds JMenu object to the Menu bar.
  2. add(Component c) : Add component to the end of JMenu
  3. add(Component c, int index) : Add component to the specified index of JMenu
  4. add(JMenuItem menuItem) : Adds menu item to the end of the menu.
  5. add(String s) : Creates a menu item with specified string and appends it to the end of menu.
  6. 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 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 program 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.

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :