AWT Menu Action Event 처리

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

public class MenuTest extends Frame 
{
	MenuBar mb;
	Menu file, color, sub_color;
	MenuItem miOpen, miSave, miExit, miYellow, miGray;
	Label lb;

	public MenuTest() {
		super("MenuTest");
		//1. 메뉴바 생성--------
		mb = new MenuBar();
		setMenuBar(mb);  //메뉴바를 프레임에 부착
		//2. 메뉴생성 및 부착
		file = new Menu("파일");
		mb.add(file);
		//3. 메뉴 아이템 생성 및 부착
		miOpen = new MenuItem("열기");
		MenuShortcut ms = new MenuShortcut('S');  //단축키
		miSave = new MenuItem("저장", ms);
		miExit = new MenuItem("종료", new MenuShortcut('X', true));  //true=> shift키와 함께 사용

		file.add(miOpen);
		file.add(miSave);
		file.addSeparator();   // 메뉴 아이템에 분리선 주기...
		file.add(miExit);
		// 리스너 부착
		MyHandler my = new MyHandler();
		miOpen.addActionListener(my);
		miSave.addActionListener(my);
		miExit.addActionListener(my);

		color = new Menu("색상");
		mb.add(color);
		miYellow = new MenuItem("노 랑");
		miGray = new MenuItem("회 색");
		color.add(miYellow);
		color.add(miGray);
		color.addSeparator();
		
		sub_color = new Menu("글자색");
		color.add(sub_color);
		sub_color.add("빨강");
		sub_color.add("파랑");

		lb=new Label("안녕하세요?", Label.CENTER);
		add(lb, "South");
		// 색상 메뉴 관련 리스너 부착
		miYellow.addActionListener(my);
		miGray.addActionListener(my);
		sub_color.addActionListener(my);
	}// 생성자-----

	class MyHandler implements ActionListener
	{
		Color bgCr = Color.white;
		Color fntCr = Color.black;
		public void actionPerformed(ActionEvent e)  {
			Object obj = e.getSource();
			String cmd = e.getActionCommand();
			if(obj==miOpen){
				//파일 대화상자 열기
				// 1>FileDialog 객체 생성해서 FileDialog(Frame parent)
				// FileDialog fd = new FileDialog(fr=new Frame()); 
				// 새로운 프레임을 생성하면 안되고, MenuTest프레임과 연동되어야 한다==> MenuTest.this
				FileDialog fd = new FileDialog(MenuTest.this);
				fd.setVisible(true);

				// 내가 선택한 파일명을 프레임 타이틀에 나오게....
				String dir= fd.getDirectory();  //디렉토리 얻어오기
				String filename = fd.getFile(); //파일명 얻어오기
				setTitle(dir+filename);

			}else if(obj==miSave){
				FileDialog fd = new FileDialog(MenuTest.this, "저장", FileDialog.SAVE);  //저장모드
				fd.setVisible(true);
			}else if(obj==miExit){
				System.exit(0);
			}else if(obj==miYellow) 
			{
				bgCr=Color.yellow;
			}else if(obj==miGray){
				bgCr=Color.gray;
			}
			if(cmd.equals("빨강")) {
				fntCr=Color.red;
			}else if (cmd.equals("파랑")){
				fntCr=Color.blue;
			}
			lb.setForeground(fntCr);
			setBackground(bgCr);
			lb.setBackground(bgCr);

		}
	}//////////////////////

	public static void main(String[] args) 
	{
		MenuTest mt= new MenuTest();
		mt.setSize(400,400);
		mt.setVisible(true);
	}
}