⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testmenu.java

📁 有大量的java的实例
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;

public class TestMenu					//定义主类
{
  public static void main(String args[])
  {
    MyMenuFrame mf = new MyMenuFrame();
    mf.setSize(new Dimension(300,200));	//用setSize()方法指定窗口的初始大小
    mf.setVisible(true);		//使窗口可见
  }
}

class MyMenuFrame extends Frame 
		implements ActionListener,ItemListener	//定义窗口
{
  MenuBar m_MenuBar;
  Menu menuFile,menuEdit,m_Edit_Paste;
  MenuItem mi_File_Open,mi_File_Close,mi_File_Exit,mi_Edit_Copy;
  MenuItem pi_New,pi_Del,pi_Pro,mi_Paste_All,mi_Paste_Part;
  CheckboxMenuItem mi_Edit_Cut;
  PopupMenu popM;
  TextArea ta;

  MyMenuFrame()					//构造函数
  {
    super("拥有菜单的窗口");		//指定窗口标题
    ta = new TextArea("\n\n\n\n\n\n\t\t\t没有选择",5,20);
    ta.addMouseListener(new HandleMouse(this));	//文本域响应鼠标事件
    add("Center",ta);
    popM = new PopupMenu();		//创建弹出窗口
    pi_New = new MenuItem(" 新建 ");	//为弹出窗口创建菜单子项
    pi_New.addActionListener(this);	//使菜单子项响应动作事件
    popM.add(pi_New);				//为弹出菜单加入菜单子项
    pi_Del = new MenuItem(" 删除 ");
    pi_Del.addActionListener(this);
    popM.add(pi_Del);
    pi_Pro = new MenuItem(" 属性 ");
    pi_Pro.addActionListener(this);
    popM.add(pi_Pro);
    ta.add(popM);			//将弹出窗口加在文本域上
	
    m_MenuBar = new MenuBar();//创建菜单条
    menuFile = new Menu("文件");//创建菜单项,创建菜单子项并指定快捷键
    mi_File_Open = new MenuItem("打开",new MenuShortcut('o'));
    mi_File_Close = new MenuItem("关闭");
    mi_File_Exit = new MenuItem("退出");
    mi_File_Exit.setShortcut(new MenuShortcut('x'));//设置菜单子项的快捷键
    mi_File_Open.setActionCommand("打开");	//再设置命令名(用隐含名)
    mi_File_Exit.setActionCommand("退出"); 	//以便动作响应程序调用
    mi_File_Open.addActionListener(this);	//使菜单子项响应动作事件
    mi_File_Close.addActionListener(this);
    mi_File_Exit.addActionListener(this);
    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_Copy = new MenuItem("复制");
    mi_Edit_Cut = new CheckboxMenuItem("剪切");	//创建选择菜单子项
    m_Edit_Paste = new Menu("粘贴");			//创建二级菜单项
    mi_Paste_All = new MenuItem("全部粘贴");
    mi_Paste_Part = new MenuItem("部分粘贴");
    mi_Edit_Copy.addActionListener(this);
    mi_Edit_Cut.addItemListener(this);	//检测盒菜单子项产生选择事件
    m_Edit_Paste.add(mi_Paste_Part);	//为二级菜单项加入菜单子项
    m_Edit_Paste.add(mi_Paste_All);
    mi_Paste_Part.addActionListener(this);
    mi_Paste_All.addActionListener(this);
    menuEdit.add(mi_Edit_Copy);
    menuEdit.add(mi_Edit_Cut);
    menuEdit.addSeparator();
    menuEdit.add(m_Edit_Paste);			//把二级菜单项加入菜单项
    m_MenuBar.add(menuEdit);
    this.setMenuBar(m_MenuBar);		//把菜单条加入整个Frame容器
  }
  public void actionPerformed(ActionEvent e)//响应动作事件
  {
    if(e.getActionCommand()=="退出")//选择"退出"菜单则关闭窗口退出程序
    {
      dispose();
      System.exit(0);
    }
    else	//否则显示选择的命令名
      ta.setText("\n\n\n\n\n\n\t\t\t"+e.getActionCommand());
  }
  public void itemStateChanged(ItemEvent e)//响应CheckboxMenuItem单击事件
  {
    if(e.getSource()==mi_Edit_Cut)
      if(((CheckboxMenuItem)e.getSource()).getState())	//查看是否选中
       ta.setText("\n\n\n\n\n\n\t\t\t"+"选择了"	//因为无命令名,所以用标签
			+((CheckboxMenuItem)e.getSource()).getLabel());
      else
       ta.setText("\n\n\n\n\n\n\t\t\t"+"未选择"
			+((CheckboxMenuItem)e.getSource()).getLabel());
  }
}

class HandleMouse extends MouseAdapter//处理鼠标事件类,继承鼠标事件裁剪类
{
  MyMenuFrame m_Parent;	//产生事件的组件所在的窗口容器
  HandleMouse(MyMenuFrame mf)//构造函数
  {
    m_Parent = mf;
  }
  public void mouseReleased(MouseEvent e)//鼠标按键松开事件弹出菜单
  {
    if(e.isPopupTrigger()) //检查鼠标事件是否是由弹出菜单引发的
	m_Parent.popM.show((Component)e.getSource(),e.getX(),e.getY());
        
  }		//将弹出菜单显示在用户鼠标点击的位置
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -