Open In App

Java Swing | JMenuBar

Last Updated : 20 May, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

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




// 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.



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads