java Swing 如何添加点击可展开菜单控件( JMenuBar如何使用?)
准备:
JMenuBar 点击可展开控件本体
JMenu 点击可展开控件中的一级菜单
JMenuItem 点击可展开控件中的二级菜单
JFrame 程序运行时弹出的那个框框
这是一个使用点击可展开菜单控件的例子。
package swing; import java.awt.EventQueue; import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem; public class Menbar { private JFrame frame; /**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Menbar window = new Menbar();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
} /**
* Create the application.
*/
public Menbar() {
initialize();
} /**
* Initialize the contents of the frame.
*/
private void initialize() { //创建一个弹出对话框
frame=new JFrame("嘻嘻嘻汤老师"); //创建点击可展开菜单分为如下几个步骤
//1.创建这个控件主体
//2.创建单个一级菜单,并设置菜单显示文本,并将这个一级菜单添加到控件主体中
//3.创建单个二级菜单,并设置菜单显示文本,然后将二级菜单添加到对应的一级菜单中
//4.将控件主体添加到对话框中 //步骤1:创建一个点击以后可展开子菜单的控件
JMenuBar body=new JMenuBar();
//接下来要开始设置这个控件的点击菜单了。
//现在我想
//点击 一级菜单 “文件” 显示二级菜单 "新建","打开",“保存”
//点击 一级菜单 “编辑” 显示二级菜单 "撤销"
//点击 一级菜单 "帮助" 显示二级菜单 "版本"
//该如何做呢? //首先将控件的一级菜单的文字放入一个String数组中(就是不点击时显示的那个菜单)
String[] menuLab={"文件","编辑","帮助"};
//将控件的二级菜单中要显示的文字放入一个String的二维数组中
String[][] menuItemLab={{"新建","打开","保存"},
{"撤销"},
{"版本"}}; //步骤2:
//创建一个一级名为文件的一级菜单
JMenu menuWenJian =new JMenu(menuLab[0]);
//并将它添加到主体控件中
body.add(menuWenJian); //创建一个一级名为编辑的一级菜单
JMenu menuBianji =new JMenu(menuLab[1]);
//并将它添加到主体控件中
body.add(menuBianji); //创建一个一级名为帮助的一级菜单
JMenu menuBangZhu =new JMenu(menuLab[2]);
//并将它添加到主体控件中
body.add(menuBangZhu); //步骤3:
//给一级菜单#文件#添加子菜单
//创建一个子菜单名为#新建#的子菜单(请问此时menuItemLab[0][0]的值为? )
JMenuItem itemXinJian=new JMenuItem(menuItemLab[0][0]);
//将子菜单添加到对于的一级文件菜单当中
menuWenJian.add(itemXinJian); //创建一个子菜单名为#打开#的子菜单(请问此时menuItemLab[0][1]的值为? )
JMenuItem itemDaKai=new JMenuItem(menuItemLab[0][1]);
//将子菜单添加到对于的一级文件菜单当中
menuWenJian.add(itemDaKai); //创建一个子菜单名为#保存#的子菜单(请问此时menuItemLab[0][2]的值为? )
JMenuItem itemBaoCun=new JMenuItem(menuItemLab[0][2]);
//将子菜单添加到对于的一级文件菜单当中
menuWenJian.add(itemBaoCun); //给一级菜单#编辑#添加子菜单
//创建一个子菜单名为#撤销#的子菜单(请问此时menuItemLab[1][0]的值为? )
JMenuItem itemBianJi=new JMenuItem(menuItemLab[1][0]);
//将子菜单添加到对于的一级文件菜单当中
menuBianji.add(itemBianJi); //给一级菜单#帮助辑#添加子菜单
//创建一个子菜单名为#版本建#的子菜单(请问此时menuItemLab[2][0]的值为? )
JMenuItem itemBanben=new JMenuItem(menuItemLab[2][0]);
//将子菜单添加到对于的一级文件菜单当中
menuBangZhu.add(itemBanben); //步骤2和步骤3可通过如下循环代码简化
// for(int i=0;i<menuLab.length;i++){
//创建一级菜单
// JMenu menu=new JMenu(menuLab[i]);
// body.add(menu);
// for(int j=0;j<menuItemLab[i].length;j++){
//创建二级菜单
// JMenuItem item=new JMenuItem(menuItemLab[i][j]);
//将二级菜单添加到一级菜单
// menu.add(item);
// }
// } //步骤4:将控件主体添加到对话框中
frame.setJMenuBar(body);
//到此,可展开的菜单控件创建成功! //这个frame就是你运行后弹出的那个框框
//设置框框出现时在屏幕上的位置
frame.setLocation(200,50);
//设置框框的大小(修改,620,660 2个值,然后观察弹出框框的大小)
frame.setSize(620,660);
//设置程序运行后,显示这个框框(将true修改为false查看程序运行结果)
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
问题
1:请回答完代码注释中的问题
2.步骤2和步骤3如何通过使用循环来简化?
3.创建一个点击可展开控件
一级菜单:内容 二级菜单:可以 ,不错,还好,牛b,碉堡
一级菜单:历史 二级菜单:昨天 ,今天,明天,后台,大后天
一级菜单:书签 二级菜单:英语 日语 法语 德语
(菜单名设置通过循环来实现)
java Swing 如何添加点击可展开菜单控件( JMenuBar如何使用?)的更多相关文章
- Java通过复选框控件数组实现添加多个复选框控件
编写程序,通过复选框控件数组事先选择用户爱好信息的复选框,在该程序中,要求界面中的复选框数量可以根据指定复选框名称的字符串数组的长度来自动调节. 思路如下: 创建JPanel面板对象: 使用JPane ...
- 百度地图API示例之添加/删除工具条、比例尺控件
代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" cont ...
- Java Swing 如何添加输入文字并且可以滚动的文本框?( JTextArea ,JScrollPane的使用)
准备: JTextArea 文本区,一个可以输入文字的文本框 常用方法: 1.setText(String t)设置文本区中显示的文本 2.getText() 获取文本区中显示的文本 JScrollP ...
- 解决 GTK+/GNOME 3 环境下 Java Swing 程序使用本地 GTK+ 主题时菜单无边框 bug 的方法
在 GTK+/GNOME 3 环境下采用默认的 Adwaita 主题时,Java Swing 程序如果使用本地 GTK+ 主题会出现菜单无边框的 bug,这个问题也可能在其他常用的 GTK+ 主题中出 ...
- Java 添加、删除Excel表单控件
通过表单控件,用户可以快速地将数据填写到模板文档中,轻松引用单元格数据并与其进行交互.本文通过Java代码示例介绍如何在Excel表格中添加表单控件,包括文本框.单选按钮.复选框.组合框.微调按钮等: ...
- 点击CheckBox让Gridview控件在编辑与正常状态之间切换
昨晚快休息时,还有一位网友咨询Insus.NET,他想在开发时,实现一个小功能,就是想让用户在点击Gridview控件第一列的CheckBox之后,GridView进入编辑状态,取消选中的CheckB ...
- ListView中的Item点击事件和子控件的冲突或者item点击没有反应的解决的方法
fragment中加入了button和checkbox这些控件.此时这些子控件会将焦点获取到.所以经常当点击item时变化的是子控件.item本身的点击没有响应. 这时候就能够使用descendant ...
- 点击div和某些控件之外的地方隐藏div,点击div不隐藏。对象 click和document click冲突有关问题
帮朋友解决这个问题,我发现用以往想想像的方式来实现,貌似不太可行,所以从网上找了一些解决办法,进行优化,这篇比较详细,所以拿来备忘,另一方面也希望可以帮助需要的同学! 问题背景:jQuery事件问题! ...
- H5实现多图片预览上传,可点击可拖拽控件介绍
版权声明:欢迎转载,请注明出处:http://blog.csdn.net/weixin_36380516 在做图片上传时发现一个蛮好用的控件,支持多张图片同时上传,可以点击选择图片,也可以将图片拖拽到 ...
随机推荐
- TCP/IP详解学习笔记- 概述
TCP/IP详解学习笔记(1)-- 概述1.TCP/IP的分层结构 网络协议通常分不同层次进行开发,每一层分别负责不同的同信功能.TCP/IP通常被认为是一个四层协议系统. 如图所 ...
- Spring.Net-DI依赖注入和Ioc控制反转
Spring.Core作为整个Spring框架的基础,实现了依赖注入的功能.Spring框架的其它模块都要依赖或扩展该模块. IObjectFactory接口,该接口实现了工厂模式,使用它可以帮我们创 ...
- spring添加通知配置
在项目里添加的spring配置文件 <bean id="beforeMethod" class="com.wxw.core.common.AdviceBefore& ...
- Linux内核学习趣谈
本文原创是freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/article/details/9304991 从大二开始学习Linux内核,到现在已经 ...
- 中文格式python 打印json格式的数据中文显示问题
废话就不多说了,开始... 平日会有这么一个应用场景,会用python去处置json格式的web API,以“ip.taobao.com”的API为例,详情见http://ip.taobao.com/ ...
- 简洁AngularJS框架后台管理系统bootstrap后台模板
最近在做一个后台管理的项目,但是没有设计图完全,所以就发现一款非常不错的模版. 这个模版是基于 AngularJS 和 bootstrap 的后台管理系统模版. Minovate是 AngularJS ...
- Web开发必回知识点
Web前端必须知道 一.常用那几种浏览器测试?有哪些内核(Layout Engine)? 1.浏览器:IE,Chrome,FireFox,Safari,Opera. 2.内核:Trident,Geck ...
- [留念贴] C#开发技术期末大作业——星月之痕
明天就要去上海大学参加 2015赛季 ACM/ICPC最后一场比赛 —— EC-Final,在这之前,顺利地把期末大作业赶出来了. 在这种期末大作业10个人里面有9个是从网上下载的国内计算机水平五六流 ...
- CodeForces 632D Longest Subsequence
暴力. 虽然$a[i]$最大有${10^9}$,但是$m$最大只有${10^6}$,因此可以考虑暴力. 记$cnt[i]$表示数字$i$有$cnt[i]$个,记$p[i]$表示以$i$为倍数的情况下, ...
- 信息设计工具IDT创建从SAP Business Object到SAP HANA的连接
1. 打开Information Design Tool, 并添加BO Server的连接 2. 在Connection上右击, 选择Insert Relational Connection 3. 输 ...