Pop-up Menus

A PopupMenu is similar to a Menu as it contains MenuItem objects.

Pop-up Menus

A PopupMenu is similar to a Menu as it contains MenuItem objects.

Pop-up Menus

Pop-up Menus

     

A PopupMenu is similar to a Menu as it contains MenuItem objects. The Pop-up Menu can be popped over any component while generating the appropriate mouse event rather than letting it appear at the top of a Frame. Menu class can only be added to a Frame and not to the Applet. To add it to the Applet you need to use the Swing component set. 

In the program code given below, we have used MouseEvent.isPopupTrigger() method to trigger the MouseEvent that pops up the menu. The example below shows the triggering of a pop-up menu and its activation through a command button.

 

import java.awt.*; 
import java.awt.event.*; 
import java.applet.Applet;

public class PopupMenuDemo extends Applet
  Button b; 
  TextField msg; 
  PopupAppMenu m; 
  public PopupMenuDemo(){ 
  setSize(200200)
  b = new Button("Pop-up Menu")
  add(b, BorderLayout.NORTH)
  msg = new TextField()
  msg.setEditable(false)
  add(msg, BorderLayout.SOUTH)
  m = new PopupAppMenu(this)
  add(m)
  b.addActionListener(new ActionListener(){ 
  public void actionPerformed(ActionEvent e){ 
  m.show(b, 2020)
  
  })
  addMouseListener(new MouseAdapter(){ 
  public void mousePressed(MouseEvent e){ 
  if (e.isPopupTrigger()) 
  m.show(e.getComponent(), e.getX(), e.getY())
  
  public void mouseReleased(MouseEvent e){ 
  if (e.isPopupTrigger()) 
  m.show(e.getComponent(), e.getX(), e.getY())
  
  })
  
  public static void main(String[] args){ 
  PopupMenuDemo app = new PopupMenuDemo()
  app.setVisible(true)
  
  
 
  class PopupAppMenu extends PopupMenu 
  implements ActionListener
  PopupMenuDemo ref; 
  public PopupAppMenu(PopupMenuDemo ref){ 
  super("File")
  this.ref = ref; 
  MenuItem mi; 
  add(mi = new MenuItem("Copy"))
  mi.addActionListener(this)
  add(mi = new MenuItem("Open"))
  mi.addActionListener(this)
  add(mi = new MenuItem("Cut"))
  mi.addActionListener(this)
  add(mi = new MenuItem("Paste"))
  mi.addActionListener(this)
  
  public void actionPerformed(ActionEvent e){ 
  String item = e.getActionCommand()
  ref.msg.setText("Option Selected: " + item)
  
  

Output of the program:

C:\newprgrm>javac PopupMenuDemo.java

C:\newprgrm>appletviewer PopupMenuDemo.html

Download this example.