准备:
JMenuBar 点击可展开控件本体
JMenu 点击可展开控件中的一级菜单
JMenuItem 点击可展开控件中的二级菜单
JFrame 程序运行时弹出的那个框框
这是一个使用点击可展开菜单控件的例子。
1 package swing;
2
3 import java.awt.EventQueue;
4
5 import javax.swing.JFrame;
6 import javax.swing.JMenu;
7 import javax.swing.JMenuBar;
8 import javax.swing.JMenuItem;
9
10 public class Menbar {
11
12 private JFrame frame;
13
14 /**
15 * Launch the application.
16 */
17 public static void main(String[] args) {
18 EventQueue.invokeLater(new Runnable() {
19 public void run() {
20 try {
21 Menbar window = new Menbar();
22 window.frame.setVisible(true);
23 } catch (Exception e) {
24 e.printStackTrace();
25 }
26 }
27 });
28 }
29
30 /**
31 * Create the application.
32 */
33 public Menbar() {
34 initialize();
35 }
36
37 /**
38 * Initialize the contents of the frame.
39 */
40 private void initialize() {
41
42 //创建一个弹出对话框
43 frame=new JFrame("嘻嘻嘻汤老师");
44
45 //创建点击可展开菜单分为如下几个步骤
46 //1.创建这个控件主体
47 //2.创建单个一级菜单,并设置菜单显示文本,并将这个一级菜单添加到控件主体中
48 //3.创建单个二级菜单,并设置菜单显示文本,然后将二级菜单添加到对应的一级菜单中
49 //4.将控件主体添加到对话框中
50
51 //步骤1:创建一个点击以后可展开子菜单的控件
52 JMenuBar body=new JMenuBar();
53 //接下来要开始设置这个控件的点击菜单了。
54 //现在我想
55 //点击 一级菜单 “文件” 显示二级菜单 "新建","打开",“保存”
56 //点击 一级菜单 “编辑” 显示二级菜单 "撤销"
57 //点击 一级菜单 "帮助" 显示二级菜单 "版本"
58 //该如何做呢?
59
60 //首先将控件的一级菜单的文字放入一个String数组中(就是不点击时显示的那个菜单)
61 String[] menuLab={"文件","编辑","帮助"};
62 //将控件的二级菜单中要显示的文字放入一个String的二维数组中
63 String[][] menuItemLab={{"新建","打开","保存"},
64 {"撤销"},
65 {"版本"}};
66
67
68 //步骤2:
69 //创建一个一级名为文件的一级菜单
70 JMenu menuWenJian =new JMenu(menuLab[0]);
71 //并将它添加到主体控件中
72 body.add(menuWenJian);
73
74 //创建一个一级名为编辑的一级菜单
75 JMenu menuBianji =new JMenu(menuLab[1]);
76 //并将它添加到主体控件中
77 body.add(menuBianji);
78
79 //创建一个一级名为帮助的一级菜单
80 JMenu menuBangZhu =new JMenu(menuLab[2]);
81 //并将它添加到主体控件中
82 body.add(menuBangZhu);
83
84 //步骤3:
85 //给一级菜单#文件#添加子菜单
86 //创建一个子菜单名为#新建#的子菜单(请问此时menuItemLab[0][0]的值为? )
87 JMenuItem itemXinJian=new JMenuItem(menuItemLab[0][0]);
88 //将子菜单添加到对于的一级文件菜单当中
89 menuWenJian.add(itemXinJian);
90
91 //创建一个子菜单名为#打开#的子菜单(请问此时menuItemLab[0][1]的值为? )
92 JMenuItem itemDaKai=new JMenuItem(menuItemLab[0][1]);
93 //将子菜单添加到对于的一级文件菜单当中
94 menuWenJian.add(itemDaKai);
95
96 //创建一个子菜单名为#保存#的子菜单(请问此时menuItemLab[0][2]的值为? )
97 JMenuItem itemBaoCun=new JMenuItem(menuItemLab[0][2]);
98 //将子菜单添加到对于的一级文件菜单当中
99 menuWenJian.add(itemBaoCun);
100
101 //给一级菜单#编辑#添加子菜单
102 //创建一个子菜单名为#撤销#的子菜单(请问此时menuItemLab[1][0]的值为? )
103 JMenuItem itemBianJi=new JMenuItem(menuItemLab[1][0]);
104 //将子菜单添加到对于的一级文件菜单当中
105 menuBianji.add(itemBianJi);
106
107
108
109
110 //给一级菜单#帮助辑#添加子菜单
111 //创建一个子菜单名为#版本建#的子菜单(请问此时menuItemLab[2][0]的值为? )
112 JMenuItem itemBanben=new JMenuItem(menuItemLab[2][0]);
113 //将子菜单添加到对于的一级文件菜单当中
114 menuBangZhu.add(itemBanben);
115
116 //步骤2和步骤3可通过如下循环代码简化
117 // for(int i=0;i<menuLab.length;i++){
118 //创建一级菜单
119 // JMenu menu=new JMenu(menuLab[i]);
120 // body.add(menu);
121 // for(int j=0;j<menuItemLab[i].length;j++){
122 //创建二级菜单
123 // JMenuItem item=new JMenuItem(menuItemLab[i][j]);
124 //将二级菜单添加到一级菜单
125 // menu.add(item);
126 // }
127 // }
128
129
130 //步骤4:将控件主体添加到对话框中
131 frame.setJMenuBar(body);
132 //到此,可展开的菜单控件创建成功!
133
134
135 //这个frame就是你运行后弹出的那个框框
136 //设置框框出现时在屏幕上的位置
137 frame.setLocation(200,50);
138 //设置框框的大小(修改,620,660 2个值,然后观察弹出框框的大小)
139 frame.setSize(620,660);
140 //设置程序运行后,显示这个框框(将true修改为false查看程序运行结果)
141 frame.setVisible(true);
142 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
143
144
145 }
146
147 }
问题
1:请回答完代码注释中的问题
2.步骤2和步骤3如何通过使用循环来简化?
3.创建一个点击可展开控件
一级菜单:内容 二级菜单:可以 ,不错,还好,牛b,碉堡
一级菜单:历史 二级菜单:昨天 ,今天,明天,后台,大后天
一级菜单:书签 二级菜单:英语 日语 法语 德语
(菜单名设置通过循环来实现)