import java.awt.*;
import javax.swing.*;
import java.awt.event.*;public class JpopupMenuDemo extends JFrame{ JMenuItem reMenu,copyMenu,pasteMenu,cutMenu,delMenu,allMenu;
JPopupMenu jPopupMenuOne;
public JpopupMenuDemo(){
jPopupMenuOne = new JPopupMenu();//创建jPopupMenuOne对象
//buttonGroupOne = new ButtonGroup();
reMenu = new JMenuItem("撤销");
//讲fileMenu菜单添加到弹出式菜单中
jPopupMenuOne.add(reMenu);
jPopupMenuOne.addSeparator();
//创建单选菜单项,并添加到ButtonGroup对象中
copyMenu = new JMenuItem("复制");
pasteMenu = new JMenuItem("粘贴");
cutMenu = new JMenuItem("剪切");
delMenu = new JMenuItem("删除");
//将fileMenu菜单添加到弹出式菜单中
jPopupMenuOne.add(copyMenu);
jPopupMenuOne.add(pasteMenu);
jPopupMenuOne.add(cutMenu);
jPopupMenuOne.add(delMenu);
jPopupMenuOne.addSeparator();
allMenu = new JMenuItem("全选");
//将allMenu添加到jPopupMenuOne中
jPopupMenuOne.add(allMenu);
//创建监听器
MouseListener popupListener = new PopupListener(jPopupMenuOne);
//向主窗口注册监听器
this.addMouseListener(popupListener);
this.setTitle("JPopupMenu");
this.setBounds(500, 500, 400,200);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}
public static void main(String[] args) {
new JPopupMenu();
}
//添加内部类。该类扩展了MouseAdapter类,用来处理鼠标事件
class PopupListener extends MouseAdapter{
JPopupMenu popupMenu;
PopupListener(JPopupMenu popupMenu){
this.popupMenu = popupMenu;
}
public void mousePressed(MouseEvent e)
{
showPopupMenu(e);
}
public void mouseReleased(MouseEvent e)
{
showPopupMenu(e);
}
private void showPopupMenu(MouseEvent e){
if(e.isPopupTrigger()){
//如果当前事件与鼠标事件相关,则弹出菜单
popupMenu.show(e.getComponent(),e.getX(),e.getY());
}
}
}
}