java Swing 如何添加点击可展开菜单控件( JMenuBar如何使用?)

 准备: 

 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 }
View Code

问题

1:请回答完代码注释中的问题

2.步骤2和步骤3如何通过使用循环来简化?

3.创建一个点击可展开控件

 一级菜单:内容  二级菜单:可以 ,不错,还好,牛b,碉堡

 一级菜单:历史 二级菜单:昨天 ,今天,明天,后台,大后天

 一级菜单:书签 二级菜单:英语 日语 法语  德语

(菜单名设置通过循环来实现)

原文地址:https://www.cnblogs.com/AbsurdFantasy/p/4755975.html