AWT MenuBar Class

  • Post author:
  • Post category:AWT
  • Post comments:0 Comments
MenuBar class

Introduction

The MenuBar class provides a menu bar bound to a frame and is platform-specific.

Class declaration

Following is the declaration for java.awt.MenuBar class:

public class MenuBar
   extends MenuComponent
      implements MenuContainer, Accessible

Class constructors

S.N.Constructor & Description
1MenuBar()Creates a new menu bar.

Class methods

S.N.Method & Description
1void dispatchEvent(AWTEvent e)
2Menu add(Menu m)Adds the specified menu to the menu bar.
3void addNotify()Creates the menu bar’s peer.
4int countMenus()Deprecated. As of JDK version 1.1, replaced by getMenuCount().
5void deleteShortcut(MenuShortcut s)Deletes the specified menu shortcut.
6AccessibleContext getAccessibleContext()Gets the AccessibleContext associated with this MenuBar.
7Menu getHelpMenu()Gets the help menu on the menu bar.
8Menu getMenu(int i)Gets the specified menu.
9int getMenuCount()Gets the number of menus on the menu bar.
10MenuItem getShortcutMenuItem(MenuShortcut s)Gets the instance of MenuItem associated with the specified MenuShortcut object, or null if none of the menu items being managed by this menu bar is associated with the specified menu shortcut.
11void remove(int index)Removes the menu located at the specified index from this menu bar.
12void remove(MenuComponent m)Removes the specified menu component from this menu bar.
13void removeNotify()Removes the menu bar’s peer.
14void setHelpMenu(Menu m)Sets the specified menu to be this menu bar’s help menu.
15Enumeration shortcuts()Gets an enumeration of all menu shortcuts this menu bar is managing.

Methods inherited

This class inherits methods from the following classes:

  • java.awt.MenuComponent
  • java.lang.Object

MenuBar Example

Create the following java program using any editor of your choice in say D:/ > AWT > com > adglob > gui >AWTMenuDemo.java

package com.adglob.gui;

import java.awt.*;
import java.awt.event.*;

public class AWTMenuDemo {
   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AWTMenuDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AWTMenuDemo  awtMenuDemo = new AWTMenuDemo();     
      awtMenuDemo.showMenuDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

      controlPanel = new Panel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }

   private void showMenuDemo(){
      //create a menu bar
      final MenuBar menuBar = new MenuBar();

      //create menus
      Menu fileMenu = new Menu("File");
      Menu editMenu = new Menu("Edit"); 
      final Menu aboutMenu = new Menu("About");

      //create menu items
      MenuItem newMenuItem = 
         new MenuItem("New",new MenuShortcut(KeyEvent.VK_N));
      newMenuItem.setActionCommand("New");

      MenuItem openMenuItem = new MenuItem("Open");
      openMenuItem.setActionCommand("Open");

      MenuItem saveMenuItem = new MenuItem("Save");
      saveMenuItem.setActionCommand("Save");

      MenuItem exitMenuItem = new MenuItem("Exit");
      exitMenuItem.setActionCommand("Exit");

      MenuItem cutMenuItem = new MenuItem("Cut");
      cutMenuItem.setActionCommand("Cut");

      MenuItem copyMenuItem = new MenuItem("Copy");
      copyMenuItem.setActionCommand("Copy");

      MenuItem pasteMenuItem = new MenuItem("Paste");
      pasteMenuItem.setActionCommand("Paste");
   
      MenuItemListener menuItemListener = new MenuItemListener();

      newMenuItem.addActionListener(menuItemListener);
      openMenuItem.addActionListener(menuItemListener);
      saveMenuItem.addActionListener(menuItemListener);
      exitMenuItem.addActionListener(menuItemListener);
      cutMenuItem.addActionListener(menuItemListener);
      copyMenuItem.addActionListener(menuItemListener);
      pasteMenuItem.addActionListener(menuItemListener);

      final CheckboxMenuItem showWindowMenu = 
         new CheckboxMenuItem("Show About", true);
      showWindowMenu.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
            if(showWindowMenu.getState()){
               menuBar.add(aboutMenu);
            }else{
               menuBar.remove(aboutMenu);
            }
         }
      });

      //add menu items to menus
      fileMenu.add(newMenuItem);
      fileMenu.add(openMenuItem);
      fileMenu.add(saveMenuItem);
      fileMenu.addSeparator();
      fileMenu.add(showWindowMenu);
      fileMenu.addSeparator();
      fileMenu.add(exitMenuItem);

      editMenu.add(cutMenuItem);
      editMenu.add(copyMenuItem);
      editMenu.add(pasteMenuItem);

      //add menu to menubar
      menuBar.add(fileMenu);
      menuBar.add(editMenu);
      menuBar.add(aboutMenu);

      //add menubar to the frame
      mainFrame.setMenuBar(menuBar);
      mainFrame.setVisible(true);  
   }

   class MenuItemListener implements ActionListener {
      public void actionPerformed(ActionEvent e) {            
         statusLabel.setText(e.getActionCommand() 
            + " MenuItem clicked.");
      }    
   }
}

Compile the program using the command prompt. Go to D:/ > AWT and type the following command.

D:\AWT>javac com\adglob\gui\AWTMenuDemo.java

If no error comes that means compilation is successful. Run the program using following command.

D:\AWT>java com.adglob.gui.AWTMenuDemo

Verify the following output

MenuBar class

Previous Page:-Click Here

Leave a Reply