准备:
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,碉堡
一级菜单:历史 二级菜单:昨天 ,今天,明天,后台,大后天
一级菜单:书签 二级菜单:英语 日语 法语 德语
(菜单名设置通过循环来实现)