java ---- MenuFrame事件(一)

2014-11-24 08:14:43 · 作者: · 浏览: 2



import java.awt.BorderLayout;
import java.awt.CheckboxMenuItem;
import java.awt.Component;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.MenuShortcut;
import java.awt.PopupMenu;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;



public class TextMenu { //定义主类
	public static void main(String arge[]) {
		MyMenuFrame mf = new MyMenuFrame();
	}
}

class  MyMenuFrame extends Frame { //定义窗口类
	
	MenuBar m_MenuBar;  //定义菜单
	Menu menuFile, menuEdit, sub_Edit_Font; //定义菜单项
	MenuItem mi_File_Open, mi_File_Close, mi_File_Exit;  //file中的菜单子项
	MenuItem mi_Edit_Cut, mi_Edit_Copy, mi_Edit_Paste;   //edit中的菜单子项
	CheckboxMenuItem mi_Font_Style, mi_Font_Size;   //定义选择式的菜单子项

	PopupMenu popM; //定义弹出式菜单
	MenuItem pi_Left, pi_Center, pi_Right; //定义弹出式菜单的子项

	TextArea ta; //定义文本域
	String ta_Font_Name;
	int ta_Font_Style, new_Style, ta_Font_Size, new_Size;

	MyMenuFrame() {		//构造函数
		super("拥有菜单的窗口");		//指定窗口标题
		ta = new TextArea("\n\n\n\t\t\t 目前没有执行菜单命令", 5, 30);
		ta.addMouseListener(new HandleMouse()); 	//文本域响应鼠标事件
		add(ta, BorderLayout.CENTER);		//将文本域加到窗体的中央位置

		m_MenuBar = new MenuBar(); 		//穿件菜单条

		menuFile = new Menu("文件");	//创建“文件”菜单项
		mi_File_Open = new MenuItem("打开");	//依次创建菜单子项
		mi_File_Open.setShortcut(new MenuShortcut(KeyEvent.VK_0));	//指定快捷键
		mi_File_Close = new MenuItem("关闭");
		mi_File_Exit = new MenuItem("退出");
		mi_File_Open.addActionListener(new HandleAct());	//是菜单项响应动作事件
		mi_File_Close.addActionListener(new HandleAct());
		mi_File_Exit.addActionListener(new HandleAct());
		menuFile.add(mi_File_Open);	//吧菜单子项加入到菜单项中
		menuFile.add(mi_File_Close);
		menuFile.addSeparator();	//加一条航向分割线
		menuFile.add(mi_File_Exit);
		m_MenuBar.add(menuFile);		//吧“文件”菜单项加入菜单条

		menuEdit = new Menu("编辑");
		mi_Edit_Cut = new MenuItem("剪切");	//创建选择菜单子项
		mi_Edit_Copy = new MenuItem("复制");
		mi_Edit_Paste = new MenuItem("粘贴");
		sub_Edit_Font = new Menu("字体");	 	//创建菜单项
		mi_Font_Size = new CheckboxMenuItem("粗体");		//隐含为未选中
		mi_Font_Style = new CheckboxMenuItem("大字体");

		mi_Edit_Cut.addActionListener(new HandleAct());		//注册监听者
		mi_Edit_Copy.addActionListener(new HandleAct());
		mi_Edit_Paste.addActionListener(new HandleAct());
		mi_Font_Size.addItemListener(new HandleItem1());
		mi_Font_Style.addItemListener(new HandleItem2());

		sub_Edit_Font.add(mi_Font_Size);	//向子菜单加入菜单命令
		sub_Edit_Font.add(mi_Font_Style);
		menuEdit.add(mi_Edit_Cut);
		menuEdit.add(mi_Edit_Copy);
		menuEdit.add(mi_Edit_Paste);
		menuEdit.addSeparator(); 		//加入分割条
		menuEdit.add(sub_Edit_Font);	//加入带有子猜得到菜单项
		m_MenuBar.add(menuEdit);		//吧“编辑”菜单项加入菜单条

		this.setMenuBar(m_MenuBar);		//吧菜单条加入这个frame容器

		popM = new PopupMenu();			//创建太初菜单
		pi_Left = new MenuItem("左对齐");	//为弹出窗体创建菜单子项
		pi_Left.addActionListener(new HandleAct());	//是弹出菜单响应动作事件
		pop