Java开发GUI之Menu菜单 原

Java开发GUI之Menu菜单

    在MacOS上的软件都有一个菜单栏,会浮现在屏幕顶部,Java的awt包中也提供了构建菜单功能的相关组件,示例代码如下:

	static void MenuTest(){
		Frame frame = new Frame("Menu");
        //创建菜单栏
		MenuBar menuBar = new MenuBar();
        //设置菜单栏
		frame.setMenuBar(menuBar);
        //创建菜单
		Menu m1 = new Menu("文件", true);
        //向菜单栏中添加菜单
		menuBar.add(m1);
        //创建选项
		MenuItem menuItem1 = new MenuItem("新建");
		MenuItem menuItem2 = new MenuItem("打开");
        //向菜单中添加选项
		m1.add(menuItem1);
		m1.add(menuItem2);
		
		Menu m2 = new Menu("编辑", true);
		menuBar.add(m2);
		MenuItem menuItem3 = new MenuItem("复制");
		MenuItem menuItem4 = new MenuItem("粘贴");
		m2.add(menuItem3);
		m2.add(menuItem4);
		
		Menu m3 = new Menu("帮助", true);
		menuBar.setHelpMenu(m3);
		MenuItem menuItem5 = new MenuItem("问询");
		MenuItem menuItem6 = new MenuItem("联系我们");
		m3.add(menuItem5);
		m3.add(menuItem6);
		
		frame.pack();
		frame.show();
	}

效果如下:

MenuBar用来创建菜单栏,其中常用方法如下:

//构造方法
public MenuBar();
//获取帮助菜单
public Menu getHelpMenu();
//设置帮助菜单
public void setHelpMenu(Menu m);
//添加菜单
public Menu add(Menu m);
//根据下标移除菜单
public void remove(int index);
//移除一个菜单
public void remove(MenuComponent m);
//获取菜单栏中菜单个数
public int getMenuCount();
//获取菜单栏中菜单个数 已经弃用 使用上面的方法
public int countMenus();
//根据下标获取菜单对象
public Menu getMenu(int i);

Menu类为菜单对象,其中可以添加选项类MenuItem对象,Menu类中常用方法如下:

//构造函数
public Menu();
//label参数设置菜单的标题
public Menu(String label);
//布尔值参数设置是否为tear-off菜单
public Menu(String label, boolean tearOff);
//获取菜单是否为tear-off菜单
public boolean isTearOff();
//获取选项个数
public int getItemCount();
//获取选项个数 已经弃用 使用上面方法
public int countItems();
//获取某个选项对象
public MenuItem getItem(int index);
//添加一个菜单选项
public MenuItem add(MenuItem mi);
//添加一个指定标题的菜单项
public void add(String label);
//插入一个菜单项
public void insert(MenuItem menuitem, int index);
//插入一个指定标题的菜单项
public void insert(String label, int index) ;
//添加分割线
public void addSeparator();
//插入分割线
public void insertSeparator(int index);
//根据下标移除一个选项
public void remove(int index);
//移除一个选项
public void remove(MenuComponent item);
//移除所有选项
public void removeAll() ;

下面是MenuItem类的方法解析:

//构造方法
public MenuItem();
//label参数设置选项标题
public MenuItem(String label);
//MenuShortcut为设置快捷键
public MenuItem(String label, MenuShortcut s);
//获取选项标题
public String getLabel() ;
//设置选项标题
public synchronized void setLabel(String label);
//获取选项是否有效
public boolean isEnabled();
//设置选项
public synchronized void setEnabled(boolean b);
//获取快捷键
public MenuShortcut getShortcut();
//设置快捷键
public void setShortcut(MenuShortcut s);
//删除快捷键
public void deleteShortcut();
//添加事件监听
public synchronized void addActionListener(ActionListener l);
//移除事件监听
public synchronized void removeActionListener(ActionListener l);
//获取所有监听者
public synchronized ActionListener[] getActionListeners();

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张俊红

网页的行为

总第62篇 本篇为爬虫基础知识第三篇,JavaScript篇,JavaScript是描述网站行为的,是为了增加与用户的交互,前两篇传送地址: 网页是怎么构成的?...

38450
来自专栏IT 指南者专栏

前端系列之CSS基础知识概述

1、什么是DIV (1)、div就是html一个普通标签,进行区域划分。div特性:独自占一行。独自不能实现复杂效果。必须结合css样式进行渲染。 (2)、d...

402110
来自专栏十月梦想

CSS三种表现形式

10320
来自专栏Java后端技术

细谈CSS布局方式

  [2].浮动布局方式:通过设置html的float属性显示,值:none不浮动、left对象向左浮动,而后面的内容流向对象的右侧、right对象向右浮动,而...

13220
来自专栏一个会写诗的程序员的博客

CSS 弹性布局 flex 属性详解

定义了当flex容器有多余空间时,item是否放大。默认值为0,即当有多余空间时也不放大;可能的值为整数,表示不同item的放大比例,如

10030
来自专栏我就是马云飞

View的绘制流程源码分析

概述 View的绘制流程主要是指测量、布局以及绘制显示,在View中,measure是测量View的宽高,layout是控制View四个顶点的位置,而draw就...

21250
来自专栏小程序的道路

小程序事件

当用户点击该组件的时候会在该页面对应的Page中找到相应的事件处理函数,跳转到demo页面。然后在对应的js中写出事件的具体实现方法

22460
来自专栏前端知识分享

第77天:jQuery事件绑定触发

返回值不同,.height()方法返回的是 数字类型(20),.css(“height”)返回的是字符串类型(20px),因此.height()方法常用在参与数...

13030
来自专栏HTML5学堂

jQuery animate动画精讲

HTML5学堂:animate是jQuery中很好用的一个方法,用于实现自定义动画。对于animate方法是有不同的书写方法的,今天我们就来说说animate平...

34250
来自专栏沈唁志

jQuery中的9个选择器

15820

扫码关注云+社区

领取腾讯云代金券