• Java swing GUI小程序入门 之天天美食外卖系统(1)


    环境:java1.8+ Mysql8.0.22 +idea
    第一步。先生成菜单对象并定义初始化函数将主框架初始化

    //生成菜单栏对象
    JMenuBar MenuBar = new JMenuBar();
    //生成并定义菜单选项
    JMenu menu1 =new JMenu("商品管理");
    JMenu menu2 =new JMenu("订单记录");
    JMenu menu3 =new JMenu("用户管理");
    JMenu menu4 =new JMenu("系统帮助");
    JMenu menu5 =new JMenu("退出系统");
    //定义各级菜单的子项
    JMenuItem menu1Item01 =new JMenuItem("上架商品");
    JMenuItem menu1Item02 =new JMenuItem("下架商品");

    JMenuItem menu3Item01 =new JMenuItem("删除用户");
    JMenuItem menu3Item02 =new JMenuItem("修改用户");
    JMenuItem menu3Item03 =new JMenuItem("查询用户");
    JMenuItem menu3Item04 =new JMenuItem("添加用户");

    JMenuItem menu5Item01 =new JMenuItem("保存preview");
    JMenuItem menu5Item02 =new JMenuItem("不保存printOUT");
     
    第二步。将菜单组件组装成菜单栏
    //这里为了方便直接写在了主类的构造函数里

    public MainFrame(){ 
    super();
    //将菜单选项与菜单栏绑定
    MenuBar.add(menu1);
    MenuBar.add(menu2);
    MenuBar.add(menu3);
    MenuBar.add(menu4);
    MenuBar.add(menu5);
    //将菜单子项与对应菜单选项绑定
    menu1.add(menu1Item01);
    menu1.add(menu1Item02);

    menu3.add(menu3Item01);
    menu3.add(menu3Item02);
    menu3.add(menu3Item03);
    menu3.add(menu3Item04);

    menu5.add(menu5Item01);
    menu5.add(menu5Item02);
    this.setJMenuBar(MenuBar);//将菜单初始化
    //注册监听事件
    menu1Item01.addActionListener(this);
    menu1Item02.addActionListener(this);
    menu3Item01.addActionListener(this);
    menu3Item02.addActionListener(this);
    menu3Item03.addActionListener(this);
    menu3Item04.addActionListener(this);
    menu5Item01.addActionListener(this);
    menu5Item02.addActionListener(this);
    //设置icon
    Icon picture = new ImageIcon("a2.JPG");
    JLabel logo = new JLabel();
    logo.setIcon(picture);
    this.add(logo);
    //设置标题
    this.setTitle("天天美食外卖系统");
    //设置窗口
    this.setSize(898,550);
    this.setVisible(true);
    this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//关闭系统后结束程序
    }
    第三步。另外为了实现事件监听,主类实现了ActionListener(public class MainFrame extends JFrame implements ActionListener)接口所以要重写接口内的抽象方法即actionPerfoemed()来对菜单选项进行监听
    @Override
    public void actionPerformed(ActionEvent e) {
    if(e.getSource()==menu5Item01){
    System.out.println("成功了!");
    System.exit(0);
    }else if (e.getSource()==menu1Item01){

    }else if (e.getSource()==menu1Item02){

    }else if (e.getSource()==menu3Item01){

    }else if (e.getSource()==menu3Item02){

    }else if (e.getSource()==menu3Item03){

    }else if (e.getSource()==menu3Item04){

    }else if (e.getSource()==menu5Item02){
    System.out.println("已退出");
    System.exit(0);
    }


    }
    综上便可实现主框架的大致内容,监听的部分代码还有待完善,系统整体功能也有待完善。下面写个测试函数测试一下,截图如下

     有可能会遇到菜单选项乱码的问题,可以参考我的上篇随笔来解决。

  • 相关阅读:
    2016年上半年中小学教师资格考试综合素质试题(中学)
    2015年上半年教师资格证考试《中学综合素质》真题--解析
    2014年下半年教师资格证考试《中学综合素质》真题--解析
    2014年上半年教师资格证考试《中学综合素质》真题--解析
    2013年下半年教师资格证考试《中学综合素质》真题--解析
    CSS3新特性
    到底什么是JS原型
    vue路由的两种方式(路由传参)
    vue项目实现路由按需加载(路由懒加载)的3种方式
    js中对象的合并
  • 原文地址:https://www.cnblogs.com/qkq505/p/14763470.html
Copyright © 2020-2023  润新知