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();

目录
相关文章
|
2月前
|
Java API Maven
如何使用Java开发抖音API接口?
在数字化时代,社交媒体平台如抖音成为生活的重要部分。本文详细介绍了如何用Java开发抖音API接口,从创建开发者账号、申请API权限、准备开发环境,到编写代码、测试运行及注意事项,全面覆盖了整个开发流程。
225 10
|
2月前
|
监控 Java API
如何使用Java语言快速开发一套智慧工地系统
使用Java开发智慧工地系统,采用Spring Cloud微服务架构和前后端分离设计,结合MySQL、MongoDB数据库及RESTful API,集成人脸识别、视频监控、设备与环境监测等功能模块,运用Spark/Flink处理大数据,ECharts/AntV G2实现数据可视化,确保系统安全与性能,采用敏捷开发模式,提供详尽文档与用户培训,支持云部署与容器化管理,快速构建高效、灵活的智慧工地解决方案。
|
11天前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
1月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
58 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
22天前
|
存储 JavaScript 前端开发
基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
105 13
|
27天前
|
算法 Java API
如何使用Java开发获得淘宝商品描述API接口?
本文详细介绍如何使用Java开发调用淘宝商品描述API接口,涵盖从注册淘宝开放平台账号、阅读平台规则、创建应用并申请接口权限,到安装开发工具、配置开发环境、获取访问令牌,以及具体的Java代码实现和注意事项。通过遵循这些步骤,开发者可以高效地获取商品详情、描述及图片等信息,为项目和业务增添价值。
57 10
|
20天前
|
前端开发 Java 测试技术
java日常开发中如何写出优雅的好维护的代码
代码可读性太差,实际是给团队后续开发中埋坑,优化在平时,没有那个团队会说我专门给你一个月来优化之前的代码,所以在日常开发中就要多注意可读性问题,不要写出几天之后自己都看不懂的代码。
56 2
|
30天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
2月前
|
开发框架 Java 关系型数据库
Java哪个框架适合开发API接口?
在快速发展的软件开发领域,API接口连接了不同的系统和服务。Java作为成熟的编程语言,其生态系统中出现了许多API开发框架。Magic-API因其独特优势和强大功能,成为Java开发者优选的API开发框架。本文将从核心优势、实际应用价值及未来展望等方面,深入探讨Magic-API为何值得选择。
69 2
|
2月前
|
监控 前端开发 Java
【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
该文档介绍了基于Java后端和Vue3前端构建的管理系统的技术栈及功能模块,涵盖管理后台的访问、登录、首页概览、API接口管理、接口权限设置、接口监控、计费管理、账号管理、应用管理、数据库配置、站点配置及管理员个人设置等内容,并提供了访问地址及操作指南。