当前位置: 移动技术网 > IT编程>开发语言>Java > java Gui实现肯德基点餐收银系统

java Gui实现肯德基点餐收银系统

2019年07月19日  | 移动技术网IT编程  | 我要评论
大家应该都去麦当劳或肯德基吃过快餐,参考肯德基官网的信息模拟肯德基快餐店的收银系统,简单的java gui模拟的肯德基收银系统。 1.系统介绍 同学们应该都去麦当劳或肯

大家应该都去麦当劳或肯德基吃过快餐,参考肯德基官网的信息模拟肯德基快餐店的收银系统,简单的java gui模拟的肯德基收银系统。

1.系统介绍

同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用c++/python/java,结合设计模式(2种以上)至少实现系统的以下功能:

1.正常餐品结算和找零。
2.基本套餐结算和找零。
3.使用优惠劵购买餐品结算和找零。
4.可在一定时间段参与店内活动(自行设计或参考官网信息)。
5.模拟打印小票的功能(写到文件中)。

2.系统设计

1.界面设计

采用java的gui实现简单的界面布局,界面上主要是图片和数据的显示.我大多采用的是borderlayout布局的方式,然后设置每个方位的大小.界面就很快做出来了.

界面截图:

小票信息截图:

在

2.后台设计

采用了抽象工厂模式和策略模式设计餐品的创建.

在

3.主要源代码

主界面:

package view;

import javax.swing.*;
import javax.swing.border.titledborder;
import java.awt.*;

public class menupanel extends jpanel {
 private jbutton button1,button3,sure,canel,select;
 private jpanel panel01, panel02 ,panel03,panel04,panel05,panel;
 private jtable table;
 private jbutton []btuicon= new jbutton[8];
 //充值区域
 private jlabel name,account,lastmoney,rechange;
 jtextfield namef,accountf, passwordf,rechangef;
 private jmenubar menubar;
 private jmenu menu1,menu2,menu3;
 public static int menutype=1;
 private object a[][]=new object[100][4];
 private object th[]={"商品名称","金额","数量","操作"};

 public menupanel(){
  init();
  layout();
  add();
 }
 public void init(){

  panel02 =new jpanel();
  panel02.setborder(new titledborder("结算"));
  panel01 =new jpanel();

  panel03=new jpanel();
  panel03.setborder(new titledborder(""));

  panel04=new jpanel();
  panel04.setborder(new titledborder(""));
  panel05=new jpanel();
  panel05.setborder(new titledborder("充值"));
  panel=new jpanel();
  panel.setborder(new titledborder(""));


  //结算区域
  table=new jtable(a,th);
  table.setfont(new font("dialog", 1, 20));
  table.setbounds(0,0,100,100);
  table.setrowheight(30);

  button1=new jbutton("结账");
  button1.setsize(100,60);
  button1.addactionlistener(new settlecountslistener(table));
  button3=new jbutton("删除");
  button3.setbounds(300,10,100,50);


//菜单栏
  menubar=new jmenubar();
  menu1=new jmenu("当季主打");
  menu1.setselected(true);
  menu2=new jmenu("童书套餐");
  menu3=new jmenu("人气明星餐");

  menu1.addmenulistener(new menuslistener(btuicon,1));
  menu2.addmenulistener(new menuslistener(btuicon,2));
  menu3.addmenulistener(new menuslistener(btuicon,3));
  //套餐区域
  for(int i=0;i<8;i++) {
   btuicon[i]=new jbutton("套餐"+(i+1));
   //添加套餐按钮事件
   if(menu1.isselected()){
    btuicon[i].addactionlistener(new taocanlistener(i,table));
   }
   else if(menu2.isselected()){
    btuicon[i].addactionlistener(new taocanlistener(i,table));
   }
   else if(menu3.isselected()){
    btuicon[i].addactionlistener(new taocanlistener(i,table));
   }
   imageicon icon = new imageicon("src/images/d"+(i+1)+".png");
   btuicon[i].seticon(icon);
  }



  //充值区域
  name=new jlabel("姓名:");
  name.setfont(new font("dialog", 1, 20));
  name.setbounds(50,20,50,50);
  namef=new jtextfield();
  namef.setbounds(120,30,200,35);
  account=new jlabel("账号:");
  account.setfont(new font("dialog", 1, 20));
  account.setbounds(50,70,50,50);
  accountf=new jtextfield();
  accountf.setbounds(120,80,200,35);
  lastmoney=new jlabel("密码:");
  lastmoney.setfont(new font("dialog", 1, 20));
  lastmoney.setbounds(50,120,50,50);
  passwordf =new jtextfield();
  passwordf.setbounds(120,130,200,35);
  rechange= new jlabel("充值:");
  rechange.setfont(new font("dialog", 1, 20));
  rechange.setbounds(50,170,50,50);
  rechangef=new jtextfield("0.0");
  rechangef.setbounds(120,180,200,35);

  sure=new jbutton("确定充值");
  sure.setbounds(40,235,100,40);
  canel=new jbutton("取消充值");
  canel.setbounds(300,235,100,40);
  select=new jbutton("查询余额");
  select.setbounds(400,150,100,40);
  sure.addactionlistener(new rechangelistener(this,1));
  canel.addactionlistener(new rechangelistener(this,2));
  select.addactionlistener(new rechangelistener(this,3));



 }
 public void add(){
  //添加面板
  this.add(panel,borderlayout.center);
  this.add(panel02,borderlayout.west);
  //panel02添加组件, 添加table组件(滚动条方式添加),放在panel01的north方位
  panel02.setlayout(new gridlayout(2,1));


  //左侧栏添加按钮
  panel02.add(new jscrollpane(table));
  panel02.add(panel03);
  panel03.add(button3);
  panel03.add(button1);

  //
  panel.setlayout(new borderlayout());
  menubar.add(menu1);

  menubar.add(menu2);
  menubar.add(menu3);
  panel.add(menubar,borderlayout.north);
  panel.add(panel01,borderlayout.center);
  panel01.setlayout(new borderlayout());
  panel04.setpreferredsize(new dimension(225,450));
  panel01.add(panel04,borderlayout.north);
  panel01.add(panel05,borderlayout.center);



  //选购区域
  panel04.setlayout(new gridlayout(2,4));
  for(int i=0;i<8;i++) {
   panel04.add(btuicon[i]);
  }

  //充值区域
  panel05.setlayout(null);
  panel05.add(name);
  panel05.add(namef);
  panel05.add(account);
  panel05.add(accountf);
  panel05.add(lastmoney);
  panel05.add(passwordf);
  panel05.add(rechange);
  panel05.add(rechangef);
  panel05.add(sure);
  panel05.add(canel);
  panel05.add(select);

 }
 public void layout(){
  this.setlayout(new borderlayout());
 }
}

抽象工厂:

参考这个,介绍的很详细。

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网