import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class PopupMenuDemo extends JApplet {
private JPopupMenu jPopupMenu1 = new JPopupMenu();
private JMenuItem jmiNew = new JMenuItem("New",
new ImageIcon(getClass().getResource("image/new.gif")));
private JMenuItem jmiOpen = new JMenuItem("Open",
new ImageIcon(getClass().getResource("image/open.gif")));
private JMenuItem jmiPrint = new JMenuItem("Print",
new ImageIcon(getClass().getResource("image/print.gif")));
private JMenuItem jmiExit = new JMenuItem("Exit");
private JTextArea jTextArea1 = new JTextArea();
public PopupMenuDemo() {
jPopupMenu1.add(jmiNew);
jPopupMenu1.add(jmiOpen);
jPopupMenu1.addSeparator();
jPopupMenu1.add(jmiPrint);
jPopupMenu1.addSeparator();
jPopupMenu1.add(jmiExit);
jPopupMenu1.add(jmiExit);
add(new JScrollPane(jTextArea1), BorderLayout.CENTER);
jmiNew.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Process New");
}
});
jmiOpen.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Process Open");
}
});
jmiPrint.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Process Print");
}
});
jmiExit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(1);
}
});
jTextArea1.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
showPopup(e);
}
@Override
public void mouseReleased(MouseEvent e) {
showPopup(e);
}
});
}
private void showPopup(java.awt.event.MouseEvent evt) {
if (evt.isPopupTrigger())
jPopupMenu1.show(evt.getComponent(), evt.getX(), evt.getY());
}
public static void main(String[] args) {
PopupMenuDemo applet = new PopupMenuDemo();
JFrame frame = new JFrame();
//EXIT_ON_CLOSE == 3
frame.setDefaultCloseOperation(3);
frame.setTitle("PopupMenuDemo");
frame.getContentPane().add(applet, BorderLayout.CENTER);
applet.init();
applet.start();
frame.setSize(400,320);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}