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 :

  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

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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);
    }
}

chevron_right


Output :

2. Program to add a menubar and add menuitems, submenu items and also add ActionListener to menu items

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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");
    }
}

chevron_right


Output:

Note : The following program might not run in an online compiler, please use an offline IDE.



My Personal Notes arrow_drop_up

Second year Department of Information Technology Jadavpur University

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :
Practice Tags :


1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.