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