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 在做图片上传时发现一个蛮好用的控件,支持多张图片同时上传,可以点击选择图片,也可以将图片拖拽到 ...
随机推荐
- 提高Java代码质量的Eclipse插件之Checkstyle的使用详解
提高Java代码质量的Eclipse插件之Checkstyle的使用详解 CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具.它能够自动化代 ...
- hdu 2859 (二维dp)
点击打开链接 题意: 给你一个n*n的矩阵,矩阵中只含有26个小写字母,求其中最大的对称矩阵的大小 当我们算到s[i][j]时,每次我们只需要将它上方的和右方的依次比较,看是否相同 注意这里不能只比较 ...
- Jenkins安装plugin
Jenkins支持很多的plugin,这些plugin极大地丰富了Jenkins的功能.安装plugin有两种方式:自动安装和手动安装. 1.自动安装 这种方式非常简单,但前提是Jenkins必须连接 ...
- 用curl自动登录HTTPS站点
前文http://blog.csdn.net/sheismylife/article/details/9237925 演示了如何手动的通过运行curl命令登录HTTPS站点,然后获取cookie, 再 ...
- 使用pentaho工具将数据库数据导入导出为Excel
写在前面:本篇博客讲述的是如何使用pentaho工具快速的将数据库数据导出为Excel文件,以及如何将Excel文件数据导入数据库. 补充:使用此工具并不需要任何一句代码并能快速便捷解决实际问题,此工 ...
- MySQL SET TRANSACTION 设置事务隔离级别
1. 首先说一下autocommit 默认情况下autocommit的开关是打开的,也就是ON,查看方法 方法1. select @@[global/session].autocommit; 方法2. ...
- ASP.NET Web API中的Routing(路由)
[译]Routing in ASP.NET Web API 单击此处查看原文 本文阐述了ASP.NET Web API是如何将HTTP requests路由到controllers的. 如果你对ASP ...
- Windows server 2008 r2上安装MySQL
用MSI安装包安装 根据自己的操作系统下载对应的32位或64位安装包.按如下步骤操作: MySQL数据库官网的下载地址http://dev.mysql.com/downloads/mysql,第一步: ...
- Redmine管理项目3-调整用户显示格式
在 Redmine 中新建用户时是这样的: 必须指定姓氏.名字,然后 Redmine 默认是按“名字 姓氏”这种方式显示用户.比如“张三”,会显示成“三张”……看起来好别扭啊. 怎么调整呢,参看 Re ...
- Access一些常用的SQL语句
您可以将 Microsoft Office Access 2013 用作创建.修改数据库以及处理数据的工具,还可将 Office Access 2013 用作服务器数据库管理系统(如 Microsof ...