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. 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(200, 200);
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, 20, 20);
}
});
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.
