AWT PopupMenu Class

  • Post author:
  • Post category:AWT
  • Post comments:1 Comment
PopupMenu class

Introduction

PopupMenu class represents a menu which can be dynamically popped up at a specified position within a component.

Class declaration

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

public class CheckboxMenuItem
   extends MenuItem
      implements ItemSelectable, Accessible

Class constructors

S.N.Constructor & Description
1PopupMenu()Creates a new popup menu with an empty name.
2PopupMenu(String label)Creates a new popup menu with the specified name.

Class methods

S.N.Method & Description
1void addNotify()Creates the popup menu’s peer.
2AccessibleContext getAccessibleContext()Gets the AccessibleContext associated with this PopupMenu.
3MenuContainer getParent()Returns the parent container for this menu component.
4void show(Component origin, int x, int y)Shows the popup menu at the x, y position relative to an origin component.

Methods inherited

This class inherits methods from the following classes:

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

PopupMenu 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.showPopupMenuDemo();
   }

   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 showPopupMenuDemo(){
      final PopupMenu editMenu = new PopupMenu("Edit"); 

      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();

      cutMenuItem.addActionListener(menuItemListener);
      copyMenuItem.addActionListener(menuItemListener);
      pasteMenuItem.addActionListener(menuItemListener);

      editMenu.add(cutMenuItem);
      editMenu.add(copyMenuItem);
      editMenu.add(pasteMenuItem);   
      
      controlPanel.addMouseListener(new MouseAdapter() {
         public void mouseClicked(MouseEvent e) {            
               editMenu.show(controlPanel, e.getX(), e.getY());
         }               
      });
      controlPanel.add(editMenu); 

      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. (Click in the middle on the screen.)

PopupMenu class

Previous Page:-Click Here

This Post Has One Comment

Leave a Reply