首页 > 代码库 > java 24 - 7 GUI之 创建多级菜单窗体

java 24 - 7 GUI之 创建多级菜单窗体

需求:
  创建多级菜单

步骤:
  A:创建窗体对象(并设置属性和布局)
  B:创建菜单栏
  C:创建菜单和子菜单
  D:逐步添加菜单(子菜单添加到菜单中,菜单添加到菜单栏中)
  E:窗体中设置菜单栏(菜单栏并不是添加,而是设置)
  F:设置各个菜单对应的监听事件
  G:设置窗体关闭监听时间
  H:设置显示窗口

 

代码:

  1 public class FrameText4 {  2   3     public static void main(String[] args) {  4   5         // 创建窗体对象  6         final Frame f = new Frame("多级菜单");  7         // 设置窗体属性  8         f.setBounds(300, 300, 500, 500);  9         f.setLayout(new FlowLayout()); 10  11         //获取原来的标题 12         final String str = f.getTitle(); 13          14         // 创建菜单栏 15         MenuBar m = new MenuBar(); 16  17         // 创建菜单 18         Menu m1 = new Menu("操作"); 19         Menu m2 = new Menu("更改标题"); 20  21         // 创建子菜单 22         final MenuItem mi1 = new MenuItem("N级菜单"); 23         final MenuItem mi2 = new MenuItem("M级菜单"); 24         MenuItem mi3 = new MenuItem("恢复标题"); 25         MenuItem mi4 = new MenuItem("退出"); 26         MenuItem mi5 = new MenuItem("打开记事本"); 27  28         // 逐步添加 29         // 子菜单添加到菜单中 30         m2.add(mi1); 31         m2.add(mi2); 32         m2.add(mi3); 33         m1.add(m2); 34         m1.add(mi5); 35         m1.add(mi4); 36          37         // 菜单添加到菜单栏中 38         m.add(m1); 39  40         // 窗体中设置菜单栏 41         f.setMenuBar(m); 42  43         // 设置各个菜单对应的监听事件 44         mi1.addActionListener(new ActionListener() { 45  46             public void actionPerformed(ActionEvent e) { 47                 // 更改标题栏的名称 48                 // 为了以后方便修改,首先获取mi1菜单的名称,再进行更改 49                 f.setTitle(mi1.getLabel()); 50                 // 把窗口的标题名称改为mi1的标签 51             } 52         }); 53          54         mi2.addActionListener(new ActionListener(){ 55  56             public void actionPerformed(ActionEvent e) { 57                 //如mil1 58                 f.setTitle(mi2.getLabel()); 59             } 60              61         }); 62          63         mi3.addActionListener(new ActionListener(){ 64             //这个跟上面2个有所不同,因为是恢复原来的标题。 65             //所以得在前面创建个字符串得到开始的标题,然后直接拿来更改就可以 66             public void actionPerformed(ActionEvent e) { 67                 f.setTitle(str); 68             }         69         }); 70          71         //退出系统 72         mi4.addActionListener(new ActionListener(){ 73  74             public void actionPerformed(ActionEvent e) { 75                 //退出系统 76                 System.exit(0);         77             } 78              79         }); 80          81         //打开记事本 82         mi5.addActionListener(new ActionListener(){ 83  84             public void actionPerformed(ActionEvent e) { 85                 //Runtime 使应用程序能够与其运行的环境相连接 86                 //public static Runtime getRuntime()返回与当前 Java 应用程序相关的运行时对象。 87                 //public Process exec(String command)在单独的进程中执行指定的字符串命令。  88                  89                 Runtime r = Runtime.getRuntime(); 90                 try { 91                     r.exec("notepad"); 92                 } catch (IOException e1) { 93                     // TODO Auto-generated catch block 94                     e1.printStackTrace(); 95                 } 96              97             } 98              99         });100         101         //设置窗口关闭监听事件102         f.addWindowListener(new WindowAdapter(){103             public void windowClosing(WindowEvent e) {104                 System.exit(0);105             }106         });107         108         //使窗体显示109         f.setVisible(true);110     }111 112 }

 

java 24 - 7 GUI之 创建多级菜单窗体