Java/Awt_Swing

AWT Popup Menu Action Event 처리

krvision 2011. 12. 1. 17:31
import java.awt.*;
import java.awt.event.*;
public class PopMenu extends Frame 
{
	PopupMenu pmn;
	MenuItem miOpen, miClose;

	public PopMenu() {
		super("::PopMenu::");
		pmn=new PopupMenu();
		add(pmn);  //팝업메뉴는 반드시 add()해줘야 한다
		pmn.add(miOpen=new MenuItem("열기"));
		pmn.addSeparator();
		pmn.add(miClose=new MenuItem("닫기"));


		MyHandler my = new MyHandler();
		//Frame에 마우스리스너 부착---
		addMouseListener(my);
	
	}////생성자-----------

	class MyHandler implements MouseListener
	{
		public void mouseClicked(MouseEvent e) {
			//x좌표, y좌표 타이틀에 올리기
			Point p = e.getPoint();
			// int x = p.x; int y= p.y;
			int x = e.getX();
			int y = e.getY();
			setTitle("x:" + x +"y:"+y);
			System.out.println(e.getButton());
			//if(e.getButton()==3)
			if(e.getButton()==MouseEvent.BUTTON3) {  //오른쪽 번튼이 눌렸을때만
			pmn.show(PopMenu.this,x,y);
			//show(Component origin, int x, int y)
			//팝업메뉴의 show()메소드를 호출해야 모양을 확인할 수 있다.
			}
		}
		public void mouseEntered(MouseEvent e) {
//			setBackground(Color.pink);
		}
		public void mouseExited(MouseEvent e) {
//			setBackground(Color.white);
		}
		public void mousePressed(MouseEvent e) {
//			setBackground(Color.yellow);
		}
		public void mouseReleased(MouseEvent e) {
//			setBackground(Color.cyan);
		}
	}//////////////////////////
	public static void main(String[] args) 
	{
		PopMenu pm=new PopMenu();
		pm.setSize(500,500);
		pm.setVisible(true);
	}
}