• java 24


    需求:
      创建多级菜单

    步骤:
      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 }
    何事都只需坚持.. 难? 维熟尔。 LZL的自学历程...只需坚持
  • 相关阅读:
    Asp.net中导出Excel文档(Gridview)
    以太坊难度炸弹是什么?极大抑制矿工继续以POW方式挖矿!
    Solidity语言基础 和 Etherum ERC20合约基础
    BCH/BSV coin split troubleshooting
    比特币学习-Transaction的locktime属性
    在BCH硬分叉后防止重放攻击-2
    在BCH硬分叉后防止重放攻击-1
    区块链硬分叉-软分叉简单了解
    BTC和BCH 区别和联系?
    BCHABC/BCHSV的矛盾所在
  • 原文地址:https://www.cnblogs.com/LZL-student/p/5957299.html
Copyright © 2020-2023  润新知