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 在做图片上传时发现一个蛮好用的控件,支持多张图片同时上传,可以点击选择图片,也可以将图片拖拽到 ...
随机推荐
- kivy create a package for Android
Now that you've successfully coded an app. Now you want to deploy it to Android. So now we would nee ...
- Android应用中使用AsyncHttpClient来异步网络数据
首先下载AsyncHttpClient的库文件,可以自行搜索,可以到下面地址下载 http://download.csdn.net/detail/xujinyang1234/5767419 测试的Ac ...
- 应用程序启动后修改自身EXE文件或自删除EXE文件(附VC++6.0源码)
在CSDN论坛看到这么一个问题:如何为第三方工具加上使用限制次数?问题的答案很简单,重新做一个应用程序,将第三方程序打包进这个应用程序,启动应用程序时可以检查第三方工具的使用次数,检查通过,可运行第三 ...
- lua读书笔记
接下来把我所看的<Lua程序设计>中介绍lua的内容,时时的记录下来.当做一个读书笔记吧. 先说一下怎样直接运行lua文件吧,windows cmd进入相应的文件夹,然后输入lua,出现版 ...
- Swift3.0服务端开发(四) MySQL数据库的连接与操作
本篇博客我们来聊聊MySQL数据库的连接与操作.如果你本地没有MySQL数据库的话,需要你先安装MySQL数据库.在Mac OS中使用brew包管理器进行MySQL的安装是及其方便的.安装MySQL的 ...
- 点击某一按钮新增click,并切换页面
应用场景:对于web端接收手机验证码的处理方法:1.如果有权限可以通过查询数据库来获得手机验证码,方便快捷.2.如果后台系统保存了手机验证码,可以去后台获取验证码,然后填写到前台页面,此方法有两种处理 ...
- C#开发学习——SqlHelper的应用
使用App.config配置文件封装连接字符串,方便重复使用--->添加App.conifg配置文件--->Add : ConnectionString:--->添加引用 <? ...
- url截取
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- iOS 10 之后,相机权限问题及易出现的Crash
1: iOS 10 之后,访问相机需要设置相关的权限 麦克风权限:Privacy - Microphone Usage Description 是否允许此App使用你的麦克风? 相机权限: Priva ...
- 基于DDD的.NET项目搭建
第一次写博客有点小激动,废话不多说先上图: 01_Client:存放UI相关的项目,比如ASP.NET MVC或者相关的Web Model及View Model项目. 02_Hosting:存放与Se ...