餐厅管理系统

通过构思将界面分为五个部分,分别是北部的餐厅名称、西部的菜式导航、中部的菜式选择、南部的操作按钮、和东部的菜单显示。食堂订餐系统解决了现实中存在的订餐问题,可以自由订退餐,实时扣款,解决用餐排队问题,减少人力成本。

开发环境:

JDK-11.0.2_windows-x64_bin

开发工具:

Eclipse

使用界面:



使用说明:

登录账号密码都为:123;

修改登录账号密码在第一部分代码找到登录时比较字符串修改即可;

图片保存在本地所以会找不到图片,可以在餐厅管理系统下创建文件夹,放入你下载的图片,然后在第二部分代码找到对应类型的菜单中输入文件路径并修改菜名。

package 餐厅管理系统;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class Land {private JFrame jf;private JPanel jp1;private JPanel jp2;private JPanel jp3;private JPanel jp4;private JTextField jtf1;private JPasswordField jpf1;private JLabel jl1;private JLabel jl2;private JButton jb1;private JButton jb2;public void init() {jf = new JFrame("登陆");jp1 = new JPanel();jp2 = new JPanel();jp3 = new JPanel();jp4 = new JPanel();jtf1 = new JTextField(15);jpf1 = new JPasswordField (15);jpf1.setEchoChar('*');jl1 = new JLabel("用户");jl2 = new JLabel("密码");jb1 = new JButton("登陆");jb2 = new JButton("重置");jf.setLayout(new GridLayout(3,1));jf.add(jp2);jf.add(jp3);jf.add(jp4);jp2.add(jl1);jp2.add(jtf1);jp3.add(jl2);jp3.add(jpf1);jp4.add(jb1);jp4.add(jb2);jb1.addActionListener(new ButtonListener());jb2.addActionListener(new ButtonListener());jf.pack();jf.setLocation(400, 300);jf.setLocationRelativeTo(null);jf.setVisible(true);jf.setAlwaysOnTop(false);}private class ButtonListener implements ActionListener {public void actionPerformed(ActionEvent event) {String command = event.getActionCommand();if("登陆".equals(command) && jtf1.getText().equals("123") && jpf1.getText().equals("123")) {new System().init(jtf1.getText());jf.setVisible(false);}else if("登陆".equals(command) && jtf1.getText().equals("") && jpf1.getText().equals("")) {               JOptionPane.showMessageDialog(null,"请输入用户名和密码","提示",1);             }else if("重置".equals(command)) {jtf1.setText("");jpf1.setText("");}else {JOptionPane.showMessageDialog(null,"用户名或密码错误!","错误 ",0);jtf1.setText("");jpf1.setText("");}}}public static void showMessageDialog(Component parentComponent,Object message,String title,int messageType,Icon icon) {
}public static void main(String[] args) {new Land().init();}
}   
package 餐厅管理系统;
import java.awt.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.util.ArrayList;
import java.util.Vector;
import java.util.Calendar;
import java.util.Date;
import java.io.*;
import java.text.SimpleDateFormat;
//事件处理包
import java.awt.event.*;public class System implements ActionListener{//北部区域JMenuBar jm1=new JMenuBar();private JLabel jl1;//南部区域private JButton jb1, jb2, jb3, jb4 , jb5;private JPanel jp1;//西部区域private JTabbedPane jtp2;private JPanel jp8;private JButton jb6, jb7, jb8, jb9, jb10, jb11;//东部区域   private JPanel jp9;private JComboBox jcb11;private JLabel jl20, jl21, jl22;private JTextField jtf2;private JTable jt;private JScrollPane jsp;String[] jg = { "桌1", "桌2", "桌3", "桌4", "桌5", "桌6" };private DefaultTableModel model;private Vector data;private Vector names;//中部区域private JTabbedPane jtp;// 选项卡窗格private ImageIcon img;private JPanel jp2, jp3, jp4, jp5, jp6, jp7;    private JLabel jl2, jl3, jl4, jl5, jl6, jl7, jl8, jl9, jl10, jl11, jl12, jl13, jl14, jl15, jl16, jl17, jl18, jl19;private JCheckBox jcb1, jcb2, jcb3, jcb4, jcb5, jcb6, jcb7, jcb8, jcb9;
//判断boolean B = true;
//文件输出BufferedWriter out;
//主框架JFrame jf;
public void init(String username){//北部区域jl1 = new JLabel("*****XX餐厅欢迎您*****",JLabel.CENTER);jl1.setOpaque(true);//设置背景颜色必须先将它设置为不透明的,因为默认是透明的。jl1.setBackground(Color.pink);Font f = new Font("楷体",Font.PLAIN,45); jl1.setFont(f);jl1.setForeground(Color.BLUE);JMenu menu1=new JMenu("系统设置");    jm1.add(menu1);JMenu menu2=new JMenu("餐厅名称字体");      JMenu menu3=new JMenu("餐厅名称颜色");         JMenuItem item9=new JMenuItem("退出登录");                        menu1.add(menu2);menu1.add(menu3);menu1.addSeparator();menu1.add(item9);
//设置监听退出登录item9.addActionListener(new ActionListener() {                @Overridepublic void actionPerformed( ActionEvent e) {int i=JOptionPane.showConfirmDialog(null, "是否真的退出登录","退出登录",JOptionPane.YES_NO_OPTION);       if(i == JOptionPane.YES_OPTION) {                                       jf.setVisible(false);new Land().init();}}});
//菜单栏设置标题字体JMenuItem item1=new JMenuItem("楷体");                  JMenuItem item2=new JMenuItem("宋体");                 JMenuItem item3=new JMenuItem("黑体");                             JMenuItem item4=new JMenuItem("正文");menu2.add(item1);menu2.add(item2);menu2.add(item3);         menu2.add(item4);item1.addActionListener(new ActionListener() {          public void actionPerformed( ActionEvent e) {Font f = new Font("楷体",Font.PLAIN,45);jl1.setFont(f);}           });item2.addActionListener(new ActionListener() {          public void actionPerformed( ActionEvent e) {Font f = new Font("宋体",Font.PLAIN,45);jl1.setFont(f);}           });item3.addActionListener(new ActionListener() {          public void actionPerformed( ActionEvent e) {Font f = new Font("黑体",Font.PLAIN,45);jl1.setFont(f);}           });item4.addActionListener(new ActionListener() {          public void actionPerformed( ActionEvent e) {Font f = new Font("正文",Font.PLAIN,45);jl1.setFont(f);}           });
//菜单栏设置标题颜色                      JMenuItem item5=new JMenuItem("蓝色");                    JMenuItem item6=new JMenuItem("红色");                             JMenuItem item7=new JMenuItem("黑色");             JMenuItem item8=new JMenuItem("绿色");menu3.add(item5);menu3.add(item6);menu3.add(item7);         menu3.add(item8);item5.addActionListener(new ActionListener() {          public void actionPerformed( ActionEvent e) {jl1.setForeground(Color.BLUE);}           });item6.addActionListener(new ActionListener() {            public void actionPerformed( ActionEvent e) {jl1.setForeground(Color.RED);}           });item7.addActionListener(new ActionListener() {         public void actionPerformed( ActionEvent e) {jl1.setForeground(Color.BLACK);}           });item8.addActionListener(new ActionListener() {           public void actionPerformed( ActionEvent e) {jl1.setForeground(Color.green);}           });//南部区域jp1 = new JPanel();jb1 = new JButton("取消");jb2 = new JButton("下单");jb3 = new JButton("加单");jb4 = new JButton("结账");//西部区域jtp2 = new JTabbedPane();jp8 = new JPanel();           jb6 = new JButton("热销菜式");jb7 = new JButton("小炒类");       jb8 = new JButton("蔬菜类");        jb9 = new JButton("主食类");        jb10 = new JButton("甜品类");   jb11 = new JButton("饮品类");//东部区域jp9 = new JPanel();jl20 = new JLabel("请选择桌号:");       jcb11 = new JComboBox(jg);jl21 = new JLabel("请输入用餐人数:");jtf2 = new JTextField();jl22 = new JLabel("已点菜式列表:"); model = new DefaultTableModel(); // 新建一个默认数据模型data = new Vector(); // 数据行向量集,因为列表不止一行,往里面添加数据行向量,添加方法add(row)names = new Vector();// 列名向量,使用它的add()方法添加列名names.add("菜名");  names.add("价格(元)");    model.setDataVector(data,names); // 设置模型中的元素,它会自动显示在列表中jt = new JTable(model); // 用数据模型创建JTable,JTable会自动监听到数据模型中的数据改变并显示出来jsp = new JScrollPane(jt); // 用列表创建可滚动的Panel,把这个Panel添加到窗口中          //中部区域jtp = new JTabbedPane();img=new ImageIcon("主食类//红烧肉.jpg");//创建一个图标       jl2 = new JLabel(img);      img=new ImageIcon("主食类//红烧猪蹄.jpg");          jl3 = new JLabel(img);img=new ImageIcon("主食类//家常炒面.jpg");          jl4 = new JLabel(img);img=new ImageIcon("小炒类//家常小炒.jpg");           jl5 = new JLabel(img);img=new ImageIcon("小炒类//木须肉.jpg");          jl6 = new JLabel(img);img=new ImageIcon("小炒类//小炒圆白菜.jpg");          jl7 = new JLabel(img);img=new ImageIcon("蔬菜类//苦瓜炒蛋.jpg");           jl8 = new JLabel(img);img=new ImageIcon("蔬菜类//炒四季豆.jpg");          jl9 = new JLabel(img);img=new ImageIcon("蔬菜类//凉拌土豆丝.jpg");          jl10 = new JLabel(img);jl11 = new JLabel("39",JLabel.CENTER);jl12 = new JLabel("39",JLabel.CENTER);jl13 = new JLabel("39",JLabel.CENTER);jl14 = new JLabel("28",JLabel.CENTER);jl15 = new JLabel("28",JLabel.CENTER);jl16 = new JLabel("28",JLabel.CENTER);jl17 = new JLabel("18",JLabel.CENTER);jl18 = new JLabel("18",JLabel.CENTER);jl19 = new JLabel("18",JLabel.CENTER);jcb1 = new JCheckBox("红烧肉");jcb2 = new JCheckBox("红烧猪蹄");jcb3 = new JCheckBox("家常炒面");jcb4 = new JCheckBox("家常小炒");jcb5 = new JCheckBox("木须肉");jcb6 = new JCheckBox("小炒圆白菜");jcb7 = new JCheckBox("苦瓜炒蛋");jcb8 = new JCheckBox("炒四季豆");jcb9 = new JCheckBox("凉拌土豆丝");jp2 = new JPanel();             jp3 = new JPanel();       jp4 = new JPanel();     jp5 = new JPanel();jp6 = new JPanel();jp7 = new JPanel();//将面板添加到选项卡窗格上jtp.add("热销菜式", jp2);jtp.add("小炒类", jp3);jtp.add("蔬菜类", jp4);jtp.add("主食类", jp5);jtp.add("甜品类", jp6);jtp.add("饮品类", jp7);jtp2.add("菜式导航", jp8);//设置布局           jp2.setLayout(new GridLayout(9,3));jp3.setLayout(new GridLayout(9,3));jp4.setLayout(new GridLayout(9,3));jp5.setLayout(new GridLayout(9,3));jp6.setLayout(new GridLayout(9,3));jp7.setLayout(new GridLayout(9,3));jp8.setLayout(new GridLayout(15,1));jp9.setLayout(new GridLayout(6,1));   jp9.setPreferredSize(new Dimension(250, 0));         //指定action 命令 jb1.addActionListener(this);jb1.setActionCommand("取消");jb2.addActionListener(this);jb2.setActionCommand("下单");jb3.addActionListener(this);jb3.setActionCommand("加单");jb4.addActionListener(this);jb4.setActionCommand("结账");    jb6.addActionListener(this);jb6.setActionCommand("热销菜式");jb7.addActionListener(this);jb7.setActionCommand("小炒类");jb8.addActionListener(this);jb8.setActionCommand("蔬菜类");jb9.addActionListener(this);jb9.setActionCommand("主食类");jb10.addActionListener(this);jb10.setActionCommand("甜品类");jb11.addActionListener(this);jb11.setActionCommand("饮品类");//添加组件jp1.add(jb1);jp1.add(jb2);jp1.add(jb3);jp1.add(jb4);jp2.add(jl2);jp2.add(jl3);jp2.add(jl4);jp2.add(jl11);jp2.add(jl12);jp2.add(jl13);     jp2.add(jcb1);     jp2.add(jcb2);       jp2.add(jcb3);      jp2.add(jl5);jp2.add(jl6);jp2.add(jl7);jp2.add(jl14);jp2.add(jl15);jp2.add(jl16);jp2.add(jcb4);             jp2.add(jcb5);      jp2.add(jcb6);jp2.add(jl8);jp2.add(jl9);jp2.add(jl10);jp2.add(jl17);jp2.add(jl18);jp2.add(jl19);jp2.add(jcb7);              jp2.add(jcb8);      jp2.add(jcb9);jp8.add(jb6);jp8.add(jb7);jp8.add(jb8);jp8.add(jb9);jp8.add(jb10);jp8.add(jb11);jp9.add(jl20);jp9.add(jcb11);jp9.add(jl21);jp9.add(jtf2);jp9.add(jl22);jp9.add(jsp);//续中部区域
//小炒类img=new ImageIcon("小炒类//豆角炒腊肉.jpg");      jl2 = new JLabel(img);      img=new ImageIcon("小炒类//家常小炒.jpg");          jl3 = new JLabel(img);img=new ImageIcon("小炒类//木须肉.jpg");          jl4 = new JLabel(img);img=new ImageIcon("小炒类//农家小炒肉.jpg");           jl5 = new JLabel(img);img=new ImageIcon("小炒类//四季豆小炒肉.jpg");          jl6 = new JLabel(img);img=new ImageIcon("小炒类//小炒牛肉.jpg");          jl7 = new JLabel(img);img=new ImageIcon("小炒类//小炒香菇黄瓜条.jpg");           jl8 = new JLabel(img);img=new ImageIcon("小炒类//小炒圆白菜.jpg");          jl9 = new JLabel(img);img=new ImageIcon();          jl10 = new JLabel(img);        jl11 = new JLabel("28",JLabel.CENTER);jl12 = new JLabel("28",JLabel.CENTER);jl13 = new JLabel("28",JLabel.CENTER);jl14 = new JLabel("28",JLabel.CENTER);jl15 = new JLabel("28",JLabel.CENTER);jl16 = new JLabel("28",JLabel.CENTER);jl17 = new JLabel("28",JLabel.CENTER);jl18 = new JLabel("28",JLabel.CENTER);jl19 = new JLabel("",JLabel.CENTER);jcb1 = new JCheckBox("豆角炒腊肉");jcb2 = new JCheckBox("家常小炒");jcb3 = new JCheckBox("木须肉");jcb4 = new JCheckBox("农家小炒肉");jcb5 = new JCheckBox("四季豆小炒肉");jcb6 = new JCheckBox("小炒牛肉");jcb7 = new JCheckBox("小炒香菇黄瓜条");jcb8 = new JCheckBox("小炒圆白菜");               jp3.add(jl2);jp3.add(jl3);jp3.add(jl4);jp3.add(jl11);jp3.add(jl12);jp3.add(jl13);jp3.add(jcb1);             jp3.add(jcb2);      jp3.add(jcb3);jp3.add(jl5);jp3.add(jl6);jp3.add(jl7);jp3.add(jl14);jp3.add(jl15);jp3.add(jl16);jp3.add(jcb4);               jp3.add(jcb5);      jp3.add(jcb6);jp3.add(jl8);     jp3.add(jl9);jp3.add(jl10);jp3.add(jl17);jp3.add(jl18);jp3.add(jl19);jp3.add(jcb7);             jp3.add(jcb8);
//蔬菜类img=new ImageIcon("蔬菜类//炒四季豆.jpg");      jl2 = new JLabel(img);      img=new ImageIcon("蔬菜类//苦瓜炒蛋.jpg");          jl3 = new JLabel(img);img=new ImageIcon("蔬菜类//凉拌土豆丝.jpg");          jl4 = new JLabel(img);img=new ImageIcon("蔬菜类//茄子肉末.jpg");           jl5 = new JLabel(img);img=new ImageIcon("蔬菜类//豌豆炒鸡米.jpg");          jl6 = new JLabel(img);img=new ImageIcon("蔬菜类//虾酱荷兰豆.jpg");          jl7 = new JLabel(img);img=new ImageIcon("蔬菜类//腰果玉米.jpg");           jl8 = new JLabel(img);img=new ImageIcon();          jl9 = new JLabel(img);img=new ImageIcon();          jl10 = new JLabel(img);        jl11 = new JLabel("18",JLabel.CENTER);jl12 = new JLabel("18",JLabel.CENTER);jl13 = new JLabel("18",JLabel.CENTER);jl14 = new JLabel("18",JLabel.CENTER);jl15 = new JLabel("18",JLabel.CENTER);jl16 = new JLabel("18",JLabel.CENTER);jl17 = new JLabel("18",JLabel.CENTER);jl18 = new JLabel("",JLabel.CENTER);jl19 = new JLabel("",JLabel.CENTER);       jcb1 = new JCheckBox("炒四季豆");jcb2 = new JCheckBox("苦瓜炒蛋");jcb3 = new JCheckBox("凉拌土豆丝");jcb4 = new JCheckBox("茄子肉末");jcb5 = new JCheckBox("豌豆炒鸡米");jcb6 = new JCheckBox("虾酱荷兰豆");jcb7 = new JCheckBox("腰果玉米");                       jp4.add(jl2);jp4.add(jl3);jp4.add(jl4);jp4.add(jl11);jp4.add(jl12);jp4.add(jl13);jp4.add(jcb1);             jp4.add(jcb2);      jp4.add(jcb3);jp4.add(jl5);jp4.add(jl6);jp4.add(jl7);jp4.add(jl14);jp4.add(jl15);jp4.add(jl16);jp4.add(jcb4);               jp4.add(jcb5);      jp4.add(jcb6);jp4.add(jl8);     jp4.add(jl9);jp4.add(jl10);jp4.add(jl17);jp4.add(jl18);jp4.add(jl19);jp4.add(jcb7);
//主食类img=new ImageIcon("主食类//红烧肉.jpg");      jl2 = new JLabel(img);      img=new ImageIcon("主食类//红烧猪蹄.jpg");          jl3 = new JLabel(img);img=new ImageIcon("主食类//家常炒面.jpg");          jl4 = new JLabel(img);img=new ImageIcon("主食类//金牌海鲜炒饭.jpg");           jl5 = new JLabel(img);img=new ImageIcon("主食类//糖醋排骨.jpg");          jl6 = new JLabel(img);img=new ImageIcon("主食类//新奥尔良烤翅.jpg");          jl7 = new JLabel(img);img=new ImageIcon("主食类//照烧鸡腿.jpg");           jl8 = new JLabel(img);img=new ImageIcon();          jl9 = new JLabel(img);img=new ImageIcon();          jl10 = new JLabel(img);        jl11 = new JLabel("39",JLabel.CENTER);jl12 = new JLabel("39",JLabel.CENTER);jl13 = new JLabel("39",JLabel.CENTER);jl14 = new JLabel("39",JLabel.CENTER);jl15 = new JLabel("39",JLabel.CENTER);jl16 = new JLabel("39",JLabel.CENTER);jl17 = new JLabel("39",JLabel.CENTER);jl18 = new JLabel("",JLabel.CENTER);jl19 = new JLabel("",JLabel.CENTER);jcb1 = new JCheckBox("红烧肉");jcb2 = new JCheckBox("红烧猪蹄");jcb3 = new JCheckBox("家常炒面");jcb4 = new JCheckBox("金牌海鲜炒饭");jcb5 = new JCheckBox("糖醋排骨");jcb6 = new JCheckBox("新奥尔良烤翅");jcb7 = new JCheckBox("照烧鸡腿");          jp5.add(jl2);jp5.add(jl3);jp5.add(jl4);jp5.add(jl11);jp5.add(jl12);jp5.add(jl13);jp5.add(jcb1);             jp5.add(jcb2);      jp5.add(jcb3);jp5.add(jl5);jp5.add(jl6);jp5.add(jl7);jp5.add(jl14);jp5.add(jl15);jp5.add(jl16);jp5.add(jcb4);               jp5.add(jcb5);      jp5.add(jcb6);jp5.add(jl8);     jp5.add(jl9);jp5.add(jl10);jp5.add(jl17);jp5.add(jl18);jp5.add(jl19);jp5.add(jcb7);
//甜品类img=new ImageIcon("甜品类//红豆马蹄糕.jpg");      jl2 = new JLabel(img);      img=new ImageIcon("甜品类//红糖鸡蛋.jpg");          jl3 = new JLabel(img);img=new ImageIcon("甜品类//榴莲酥.jpg");          jl4 = new JLabel(img);img=new ImageIcon("甜品类//芒果糯米糍.jpg");           jl5 = new JLabel(img);img=new ImageIcon("甜品类//全麦小餐包.jpg");          jl6 = new JLabel(img);img=new ImageIcon("甜品类//杂果榴莲冰.jpg");          jl7 = new JLabel(img);img=new ImageIcon("甜品类//紫薯汤圆.jpg");           jl8 = new JLabel(img);img=new ImageIcon();          jl9 = new JLabel(img);img=new ImageIcon();          jl10 = new JLabel(img);        jl11 = new JLabel("12",JLabel.CENTER);jl12 = new JLabel("12",JLabel.CENTER);jl13 = new JLabel("12",JLabel.CENTER);jl14 = new JLabel("12",JLabel.CENTER);jl15 = new JLabel("12",JLabel.CENTER);jl16 = new JLabel("12",JLabel.CENTER);jl17 = new JLabel("12",JLabel.CENTER);jl18 = new JLabel("",JLabel.CENTER);jl19 = new JLabel("",JLabel.CENTER);jcb1 = new JCheckBox("红豆马蹄糕");jcb2 = new JCheckBox("红糖鸡蛋");jcb3 = new JCheckBox("榴莲酥");jcb4 = new JCheckBox("芒果糯米糍");jcb5 = new JCheckBox("全麦小餐包");jcb6 = new JCheckBox("杂果榴莲冰");jcb7 = new JCheckBox("紫薯汤圆");          jp6.add(jl2);jp6.add(jl3);jp6.add(jl4);jp6.add(jl11);jp6.add(jl12);jp6.add(jl13);jp6.add(jcb1);             jp6.add(jcb2);      jp6.add(jcb3);jp6.add(jl5);jp6.add(jl6);jp6.add(jl7);jp6.add(jl14);jp6.add(jl15);jp6.add(jl16);jp6.add(jcb4);               jp6.add(jcb5);      jp6.add(jcb6);jp6.add(jl8);     jp6.add(jl9);jp6.add(jl10);jp6.add(jl17);jp6.add(jl18);jp6.add(jl19);jp6.add(jcb7);
//饮品类img=new ImageIcon("饮品类//补气养颜饮.jpg");      jl2 = new JLabel(img);      img=new ImageIcon("饮品类//玫瑰陈皮饮.jpg");          jl3 = new JLabel(img);img=new ImageIcon("饮品类//梅子冬瓜饮.jpg");          jl4 = new JLabel(img);img=new ImageIcon("饮品类//木瓜红枣饮.jpg");           jl5 = new JLabel(img);img=new ImageIcon("饮品类//苹果牛奶饮.jpg");          jl6 = new JLabel(img);img=new ImageIcon("饮品类//苹果雪梨饮.jpg");          jl7 = new JLabel(img);img=new ImageIcon("饮品类//肉桂姜糖饮.jpg");           jl8 = new JLabel(img);img=new ImageIcon();          jl9 = new JLabel(img);img=new ImageIcon();          jl10 = new JLabel(img);        jl11 = new JLabel("28",JLabel.CENTER);jl12 = new JLabel("28",JLabel.CENTER);jl13 = new JLabel("28",JLabel.CENTER);jl14 = new JLabel("28",JLabel.CENTER);jl15 = new JLabel("28",JLabel.CENTER);jl16 = new JLabel("28",JLabel.CENTER);jl17 = new JLabel("28",JLabel.CENTER);jl18 = new JLabel("",JLabel.CENTER);jl19 = new JLabel("",JLabel.CENTER);jcb1 = new JCheckBox("补气养颜饮");jcb2 = new JCheckBox("玫瑰陈皮饮");jcb3 = new JCheckBox("梅子冬瓜饮");jcb4 = new JCheckBox("木瓜红枣饮");jcb5 = new JCheckBox("苹果牛奶饮");jcb6 = new JCheckBox("苹果雪梨饮");jcb7 = new JCheckBox("肉桂姜糖饮");              jp7.add(jl2);jp7.add(jl3);jp7.add(jl4);jp7.add(jl11);jp7.add(jl12);jp7.add(jl13);jp7.add(jcb1);             jp7.add(jcb2);      jp7.add(jcb3);jp7.add(jl5);jp7.add(jl6);jp7.add(jl7);jp7.add(jl14);jp7.add(jl15);jp7.add(jl16);jp7.add(jcb4);               jp7.add(jcb5);      jp7.add(jcb6);jp7.add(jl8);     jp7.add(jl9);jp7.add(jl10);jp7.add(jl17);jp7.add(jl18);jp7.add(jl19);jp7.add(jcb7);             // 展示组件             jf = new JFrame("点菜系统");jf.setSize(860, 635);jf.setJMenuBar(jm1);jf.setLayout(new BorderLayout(10,0)); //组件间距        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);      jf.setLocationRelativeTo(null);jf.setVisible(true);jf.add(jp1,BorderLayout.SOUTH);jf.add(jl1,BorderLayout.NORTH);       jf.add(jtp,BorderLayout.CENTER);jf.add(jtp2,BorderLayout.WEST);jf.add(jp9,BorderLayout.EAST);}
//监听器
public void actionPerformed(ActionEvent e) {        //判断哪个按钮被点击switch(e.getActionCommand()) {case "取消":ForJCheckBox(jp2);ForJCheckBox(jp3);ForJCheckBox(jp4);ForJCheckBox(jp5);ForJCheckBox(jp6);ForJCheckBox(jp7);break;case "下单":if(B && ForJCheckBoxnum(jp9)) {                                      ForJCheckBoxStr(jp2,data,names,model,jt);ForJCheckBoxStr(jp3,data,names,model,jt);ForJCheckBoxStr(jp4,data,names,model,jt);ForJCheckBoxStr(jp5,data,names,model,jt);ForJCheckBoxStr(jp6,data,names,model,jt);ForJCheckBoxStr(jp7,data,names,model,jt);                  jp9.add(jsp);B = false;}else if(ForJCheckBoxnum(jp9) == false) {JOptionPane.showMessageDialog(null, "请输入用餐人数", "下单错误", JOptionPane.ERROR_MESSAGE);ForJCheckBox(jp2);ForJCheckBox(jp3);ForJCheckBox(jp4);ForJCheckBox(jp5);ForJCheckBox(jp6);ForJCheckBox(jp7);}else {JOptionPane.showMessageDialog(null, "您已下单,若需要点菜请点击加单按钮", "下单错误", JOptionPane.ERROR_MESSAGE);ForJCheckBox(jp2);ForJCheckBox(jp3);ForJCheckBox(jp4);ForJCheckBox(jp5);ForJCheckBox(jp6);ForJCheckBox(jp7);}break;case "加单": if(B == false) {          ForJCheckBoxStr(jp2,data,names,model,jt);ForJCheckBoxStr(jp3,data,names,model,jt);ForJCheckBoxStr(jp4,data,names,model,jt);ForJCheckBoxStr(jp5,data,names,model,jt);ForJCheckBoxStr(jp6,data,names,model,jt);ForJCheckBoxStr(jp7,data,names,model,jt);jp9.add(jsp);}else {JOptionPane.showMessageDialog(null, "您还未下单,请先点击下单按钮", "加单错误", JOptionPane.ERROR_MESSAGE);ForJCheckBox(jp2);ForJCheckBox(jp3);ForJCheckBox(jp4);ForJCheckBox(jp5);ForJCheckBox(jp6);ForJCheckBox(jp7);} break;case "结账":if(jt.getRowCount() != 0) {int res = JOptionPane.showConfirmDialog(null, "是否继续操作", "结账提示", JOptionPane.YES_NO_OPTION);if (res == JOptionPane.YES_OPTION) {JDialog FRAME = new JDialog();//构造一个新的JFrame,作为新窗口。FRAME.setBounds(new Rectangle((int) jf.getBounds().getX() + 50,(int) jf.getBounds().getY() + 50, (int) jf.getBounds().getWidth(), (int) jf.getBounds().getHeight()));                                             FRAME.add(jsp,BorderLayout.NORTH);try {out = new BufferedWriter(new FileWriter("账单.txt",true));ForJCheckBoxnum(jp9,out,FRAME);} catch (IOException e1) {e1.printStackTrace();}                FRAME.setModalityType(Dialog.ModalityType.APPLICATION_MODAL);// 设置模式类型。                 FRAME.setVisible(true);B = true;//((DefaultTableModel)jt.getModel()).getDataVector().clear();// 清空前一人的菜单               break;} else {break;}}else {JOptionPane.showMessageDialog(null, "您还未下单,不能进行结账", "结账错误", JOptionPane.ERROR_MESSAGE);ForJCheckBox(jp2);ForJCheckBox(jp3);ForJCheckBox(jp4);ForJCheckBox(jp5);ForJCheckBox(jp6);ForJCheckBox(jp7);}case "热销菜式":jtp.setSelectedIndex(0);//切换卡片break;case "小炒类":jtp.setSelectedIndex(1);break;case "蔬菜类":jtp.setSelectedIndex(2);break;case "主食类":jtp.setSelectedIndex(3);break;case "甜品类":jtp.setSelectedIndex(4);break;case "饮品类":jtp.setSelectedIndex(5);break;}
}
//将已勾选的取消
void ForJCheckBox(JPanel p) {int count = p.getComponentCount();for (int i = 0; i < count; i++) {Component comp = p.getComponent(i);if(comp instanceof JCheckBox){JCheckBox jcb = (JCheckBox)comp;if(jcb.isSelected()) {jcb.setSelected(false);             }}}
}
//记录餐桌号、用餐人数、时间、菜名、价格、总金额
void ForJCheckBoxnum(JPanel p,BufferedWriter out,JDialog FRAME) throws IOException {String Str = "\r\n\r\n餐桌号:    "+jg[jcb11.getSelectedIndex()]+"\r\n用餐人数:   "+jtf2.getText()+"人";SimpleDateFormat sdf = new SimpleDateFormat("\r\n时间:    yyyy年-MM月-dd日 HH:mm:ss");Calendar calendar = Calendar.getInstance();  Date date = calendar.getTime();  String dateStringParse = sdf.format(date);   out.write(Str);out.write(dateStringParse);int rowCount=jt.getRowCount();int sum = 0;String b = null;for(int i=0;i<rowCount;i++){String str = (String)jt.getValueAt(i, 0);//取得第i行第一列的数据out.write("\r\n菜名: "+str);str = ((String)jt.getValueAt(i, 1));//取得第i行第二列的数据try {int a = Integer.parseInt(str);sum = sum + a;b = Integer.toString(sum);} catch (NumberFormatException e) {e.printStackTrace();}out.write("\r\n价格:   "+str+"元");}out.write("\r\n总金额:   "+b+"元");out.flush();out.close();JLabel JL = new JLabel("总金额:"+b,JLabel.CENTER);FRAME.add(JL,BorderLayout.SOUTH);
}
//判断是否输入用餐人数
boolean ForJCheckBoxnum(JPanel p) {int count = p.getComponentCount();for (int i = 0; i < count; i++) {Component comp = p.getComponent(i);if(comp instanceof JTextField){JTextField jtf = (JTextField)comp;if(jtf.getText().equals(""))return false;}}return true;
}
//向JTable添加已点菜式及价格
void ForJCheckBoxStr(JPanel p,Vector data,Vector names,DefaultTableModel model,JTable jt) { int count = p.getComponentCount();for (int i = 0; i < count; i++) {Component comp = p.getComponent(i);if(comp instanceof JCheckBox){JCheckBox jcb = (JCheckBox)comp;if(jcb.isSelected()) {jcb.setSelected(false);  Component Comp = p.getComponent(i-3);JLabel jl = (JLabel)Comp;            Vector Row = new Vector();Row.add(jcb.getText());Row.add(jl.getText());data.add(Row.clone());model = new DefaultTableModel(data, names);              jt.setModel(model);}}}
}
}

Java大作业之餐厅管理系统相关推荐

  1. 东北大学软件学院C语言程序设计大作业:餐厅管理系统

    东北大学软件学院C语言程序设计大作业 餐厅管理系统 这一份是自己做的,里面应该有超级多的bug来着,等我闲了改一下 //100张桌子 //1-4人 1-50号桌 //5-8人 51-70号 //9-1 ...

  2. JAVA大作业 | 学生成绩信息管理系统

    > * *JAVA大作业 | 学生成绩管理系统(含有用户界面)*** ----- ps :多个包写在一起---– package test; import java.awt.*; import ...

  3. Java大作业-考试管理系统(GUI)无数据库-Java课程设计

    Java课程设计-Java大作业-考试管理系统(GUI)无数据库 题目要求 开发环境 : 程序总功能模块 程序详细设计 使用情况 第一次写这东西有不少错误的地方,题目要求的功能也没有完全实现,以上内容 ...

  4. 学委作业管理系统c语言,c语言大作业-学生信息管理系统.doc

    c语言大作业-学生信息管理系统.doc 课程设计报告书 题目:学生信息管理系统设计 学 院 电子与信息学院 专 业 电子信息类 学生姓名 学生学号 指导教师 课程编号 135160 课程学分 1学分 ...

  5. java大作业1--电话簿

    java大作业1–电话簿 一.题目 Java程序设计实用教程p402 12-13 二.预览 三.题解 一.Friend类 首先明确这个电话簿存入的信息为一个个Friend,每一个Friend需要具有姓 ...

  6. 用JAVA写一个画图小程序(JAVA 大作业)

    第一次写博客 且是稍微大点的程序 看看就行 重新写的在这,更加清晰明了:点击进入:用JAVA写一个画图小程序(JAVA 大作业)重排版本 设计思路 首先我直接去了Windows自带画图程序去实践模拟, ...

  7. 程序设计大作业:教务管理系统(C语言)

    写在前头: 这个大作业是大一写的,所以比较低能,全篇只涉及C语言相关知识,且有些内容我自己看了都嫌弃.嘿嘿. 我整理了资源,可以免费下载:程序设计大作业:教务管理系统(C语言)-C文档类资源-CSDN ...

  8. 数据结构大作业之停车场管理系统

    数据结构大作业之停车场管理系统 安排: 1. 分析停车场的数据属性,并依据停车场管理的功能要求,确定模拟系统设计方案: 2. 完成停车场管理的数据结构设计工作,包括栈和队列的逻辑结构和存储结构等: 3 ...

  9. JAVA大作业 - 五道三星题

    写在前面: 看了一下我的博客,发现距离上一篇博文的发表已经快一年了,深感自己的颓废,所以打算重新写博客(其实是记录= =),于是从上学期的JAVA大作业开始慢慢整理一下,就是这样! ·问题描述 五道三 ...

最新文章

  1. log4cxx第三篇----使用多个logger
  2. ad hoc是什么的简称_签名后的App安装时出现安装失败是什么原因?如何解决?
  3. 《统计学习方法》读书笔记(1)---学习的要素
  4. Fiddler的常用功能(Web断点调试)
  5. redis启动后 允许访问_解决Redis开启远程访问及密码问题
  6. pytorch 不同设备下保存和加载模型,需要指定设备
  7. 【报错笔记】运行Maven项目时发现项目Build错误
  8. java 字符串是对象吗_解析Java中的String对象的数据类型
  9. 人工智能?.NetCore一样胜任!
  10. Android之华为平板打日志提示Permission denied
  11. 呼叫中心职场EQ与情绪压力管控(时刻提醒自己!)
  12. CFileFind类简介
  13. mysql 数据库自动备份(bat+计划任务方式)--亲测备份及还原成功
  14. JMP数据清洗之“拆分” — 快速实现一列拆分为多列
  15. JDK1.8 下载及安装步骤
  16. A到Z的unicode的编码的大小
  17. vba oracle 乱码,【VBA研究】用VBA实现excel与Oracle数据库交互
  18. 关于统信UOS操作系统版本介绍
  19. 为什么加泪滴,Allegro如何加泪滴?
  20. ROS2教程(入门级):创建ROS2工作空间

热门文章

  1. 射频识别技术原理分析
  2. 信息搜集:网络空间搜索引擎(Shodan)语法及API应用案例
  3. 汉字转html实体符号js_HTML字符实体(Character Entities),转义字符串(Escape Sequence) 转...
  4. 计算机科学与技术职员考试,在职计算机科学与技术考试科目
  5. 高德地图生成静态图片,显示指定经纬度的地图
  6. 2019FME博客大赛——【零编码】利用FME实现城市高德路况抓取及增量更新——以深圳为例
  7. nodejs批量ping
  8. webpack和脚手架
  9. java 嵌入groovy_嵌入Groovy
  10. Unity UI框架的搭建