import java.awt.*;
import java.awt.event.*;

public class PopupMenuTest extends Frame {
  private PopupMenu pm=new PopupMenu();
  private String[] itemsLabel = {"Exit","No"};
  private MenuItem[] items = new MenuItem[itemsLabel.length];
  private Button btn = new Button("OK");
 
  public PopupMenuTest(){
	setLayout(new FlowLayout());

	//组装菜单项
	int k=0;
	for(String s:itemsLabel){
	  items[k]=new MenuItem(s);
	  pm.add(items[k]);
	  k++;
	}
	add(pm);//把弹出式菜单加入到容器
	add(btn);

	//注册监听器
	btn.addMouseListener(
		new MouseAdapter(){
		  public void mouseReleased(MouseEvent e){
			//if 语句必须有，否则左击鼠标也会弹出菜单。
			if(e.isPopupTrigger()){
			  pm.show(e.getComponent(),e.getX(),e.getY());
			}
		  } 
		});

	/*实现了第一个菜单项的事件，我们没有实现第二个菜单项的事件
	 *读者可以在此基础上进一步完善该程序。
	 */
	items[0].addActionListener(
		new ActionListener(){
		  public void actionPerformed(ActionEvent e){
			System.exit(0);
		  }
		});

	this.setSize(400,400);
	this.setVisible(true);
  }

  public static void main(String[] args){
	new PopupMenuTest();
  }
}
