服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|JavaScript|易语言|

服务器之家 - 编程语言 - Java教程 - java Gui实现肯德基点餐收银系统

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

2021-07-12 15:01IT精英之路 Java教程

这篇文章主要为大家详细介绍了java Gui实现肯德基点餐收银系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

1.系统介绍

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

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

2.系统设计

1.界面设计

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

界面截图:

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

小票信息截图:

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

2.后台设计

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

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

3.主要源代码

主界面:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
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());
 }
}

抽象工厂:

参考这个java抽象工厂实现kfc点餐链接,介绍的很详细。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_41094822/article/details/83378149

延伸 · 阅读

精彩推荐
  • Java教程Spring Boot 异步框架的使用详解

    Spring Boot 异步框架的使用详解

    这篇文章主要介绍了Spring Boot 异步框架的使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    JavaDog3822021-07-10
  • Java教程Java虚拟机GC日志分析

    Java虚拟机GC日志分析

    这篇文章主要介绍了Java虚拟机GC日志分析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下...

    Mirhunana4592021-03-30
  • Java教程Java JTable 实现日历的示例

    Java JTable 实现日历的示例

    这篇文章主要介绍了Java JTable 实现日历的示例,帮助大家更好的理解和学习Java jtable的使用方法,感兴趣的朋友可以了解下...

    浅棘5552020-10-05
  • Java教程springboot 在linux后台运行的方法

    springboot 在linux后台运行的方法

    这篇文章主要介绍了springboot 在linux后台运行的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下...

    于先森啊7162021-05-07
  • Java教程Java编程访问权限的控制代码详解

    Java编程访问权限的控制代码详解

    这篇文章主要介绍了Java编程访问权限的控制代码详解,涉及包名,公共的和私有的等相关内容,分享了相关代码示例,小编觉得还是挺不错的,具有一定借...

    iaiti6712021-03-26
  • Java教程详解SpringBoot之集成Spring AOP

    详解SpringBoot之集成Spring AOP

    本篇文章主要介绍了详解SpringBoot之集成Spring AOP,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    木叶之荣3372020-11-26
  • Java教程浅谈java实现redis的发布订阅(简单易懂)

    浅谈java实现redis的发布订阅(简单易懂)

    本篇文章主要介绍了浅谈java实现 redis的发布订阅(简单易懂),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    半城枫叶半城雨丶9642021-04-09
  • Java教程详细分析Java内部类——局部内部类

    详细分析Java内部类——局部内部类

    这篇文章主要介绍了Java局部内部类的相关资料,帮助大家更好的理解和学习Java 内部类的知识,感兴趣的朋友可以了解下...

    弗兰克的猫4442020-08-21