准备:

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如何使用?)的更多相关文章

  1. Java通过复选框控件数组实现添加多个复选框控件

    编写程序,通过复选框控件数组事先选择用户爱好信息的复选框,在该程序中,要求界面中的复选框数量可以根据指定复选框名称的字符串数组的长度来自动调节. 思路如下: 创建JPanel面板对象: 使用JPane ...

  2. 百度地图API示例之添加/删除工具条、比例尺控件

    代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" cont ...

  3. Java Swing 如何添加输入文字并且可以滚动的文本框?( JTextArea ,JScrollPane的使用)

    准备: JTextArea 文本区,一个可以输入文字的文本框 常用方法: 1.setText(String t)设置文本区中显示的文本 2.getText() 获取文本区中显示的文本 JScrollP ...

  4. 解决 GTK+/GNOME 3 环境下 Java Swing 程序使用本地 GTK+ 主题时菜单无边框 bug 的方法

    在 GTK+/GNOME 3 环境下采用默认的 Adwaita 主题时,Java Swing 程序如果使用本地 GTK+ 主题会出现菜单无边框的 bug,这个问题也可能在其他常用的 GTK+ 主题中出 ...

  5. Java 添加、删除Excel表单控件

    通过表单控件,用户可以快速地将数据填写到模板文档中,轻松引用单元格数据并与其进行交互.本文通过Java代码示例介绍如何在Excel表格中添加表单控件,包括文本框.单选按钮.复选框.组合框.微调按钮等: ...

  6. 点击CheckBox让Gridview控件在编辑与正常状态之间切换

    昨晚快休息时,还有一位网友咨询Insus.NET,他想在开发时,实现一个小功能,就是想让用户在点击Gridview控件第一列的CheckBox之后,GridView进入编辑状态,取消选中的CheckB ...

  7. ListView中的Item点击事件和子控件的冲突或者item点击没有反应的解决的方法

    fragment中加入了button和checkbox这些控件.此时这些子控件会将焦点获取到.所以经常当点击item时变化的是子控件.item本身的点击没有响应. 这时候就能够使用descendant ...

  8. 点击div和某些控件之外的地方隐藏div,点击div不隐藏。对象 click和document click冲突有关问题

    帮朋友解决这个问题,我发现用以往想想像的方式来实现,貌似不太可行,所以从网上找了一些解决办法,进行优化,这篇比较详细,所以拿来备忘,另一方面也希望可以帮助需要的同学! 问题背景:jQuery事件问题! ...

  9. H5实现多图片预览上传,可点击可拖拽控件介绍

    版权声明:欢迎转载,请注明出处:http://blog.csdn.net/weixin_36380516 在做图片上传时发现一个蛮好用的控件,支持多张图片同时上传,可以点击选择图片,也可以将图片拖拽到 ...

随机推荐

  1. WPF刷新界面之坎坷路

    WPF刷新界面之坎坷路 项目需要一个硬件检测功能,需要用到界面刷新,刚开始想用个定时器,对检测过的硬设定时添加后刷新界面. 但是很遗憾,定时器并不能进行刷新.后台检测List数据里面已经添加了很多了很 ...

  2. DAS,NAS,SAN在数据库存储上的应用

    DAS,NAS,SAN在数据库存储上的应用 一. 硬盘接口类型1. 并行接口还是串行接口(1) 并行接口,指的是并行传输的接口,比如有0~9十个数字,用10条传输线,那么每根线只需要传输一位数字,即可 ...

  3. 【2013Esri全球用户大会精彩看点】Jack为您全面解读“GIS-Transforming Our World”

    GIS正影响着最尖端的科学与技术,正改变着我们的世界. 1.     GIS的带来的改变不只是物质世界的,还有观念方面. 当今世界面临各种挑战,我们要创造更美好的未来,需要智能的GIS.GIS改变了我 ...

  4. 使用php完成常见的"文件上传"功能

    文件上传现在都是很常见的了,可以上传文件,上传头像等,不同的浏览器"文件上传"有不同的效果 先看下火狐浏览器的效果是这样的: 再看下IE浏览器是这样的: 还有很多其他的浏览器,就不 ...

  5. php文件上传及头像预览

    php文件上传原理是通过form表单的enctype="multipart/form-data"属性将文件临时放到wamp文件夹中的tmp目录下,再通过后台php 程序将文件保存在 ...

  6. java导出生成csv文件

    首先我们需要对csv文件有基础的认识,csv文件类似excel,可以使用excel打开,但是csv文件的本质是逗号分隔的,对比如下图: txt中显示: 修改文件后缀为csv后显示如下: 在java中我 ...

  7. 函数四种调用模式以及其中的this指向

    第一种:函数直接执行模式 function add(a,b){ console.log(this); return a+b; } add(10,20)//this===window 第二种:对象方法的 ...

  8. D3.js:Update、Enter、Exit

    Update.Enter.Exit 是 D3 中三个非常重要的概念,它处理的是当选择集和数据的数量关系不确定的情况. 如果数组为 [3, 6, 9, 12, 15],将此数组绑定到三个 p 元素的选择 ...

  9. 读书笔记之《The Art of Readable Code》

    <The Art of Readable Code>- Dustin Boswell, Trevor Foucher    O'Reilly出版 整体认知:这本书写得很好,每一章后面的总结 ...

  10. shell 文件中列的整合成一个文件

    原文件 第一种方法 [root@wxb- jt]# paste -d "," b c d ,q, , ,e, ,r, ,t, [root@wxb- jt]# paste b c d ...