• 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,碉堡

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

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

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

  • 相关阅读:
    30-JDBC(2)
    29-JDBC(1)
    27-网络编程
    26-IO(中)
    git push 报错
    IsEmpty和isBlank区别
    java.lang.NumberFormatException: For input string: "0.9"
    Integer与Double类型转换
    Lambda 表达式排序
    Number & Math 类方法
  • 原文地址:https://www.cnblogs.com/AbsurdFantasy/p/4755975.html
Copyright © 2020-2023  润新知