java实现可视化界面肯德基(KFC)点餐系统代码实例

一、题目

使用java实现可视化KFC点餐系统。

二、题目分析

根据java中的用户图形界面包中的各个类设计界面。利用JFrame提供最大的容器,然后设计各个面板,各个面板中添加所需要的组件,本程序中需要对按钮组件添加监听者,当按下按钮之后做出相应的相应。

对于程序运行显示的第一个界面由一个继承于JFrame的类run类在构造函数中设计并通过函数setVisible(true)显示在界面上,界面上有一个按钮“点餐饮”,当此按钮按下时触发响应函数,进入点餐界面,然后通过点击点餐界面各食物的按钮“+”“-”触发响应改变用户类client的对象的相对应变量的数量并且刷新界面,此界面还有食物种类的四个按钮“汉堡”“小吃”“饮品”“套餐”,同样点击按钮触发响应刷新出对应的界面,之后设计了两种付款模式,一种是现金付款,使用文本框组件类JTextField产生组件,在此组件中输入你的支付金额,另外是扫二维码支付,只需一个标签组件JLabel中加入图片即可。

三、程序代码

由于初次使用java设计可视化界面的程序,没有设计好导致源代码繁琐,以下列出部分代码

主函数类:

import java.awt.*;
import java.io.Serializable;
import javax.swing.JFrame;
public class run implements Serializable{
	static String title = "KFC";
	static Beginning begin = new Beginning(title);
	static Order order=new Order(title);
	static JFrame[] frames= {begin,order};
	static saoma sao=new saoma("扫码支付");					//二维码窗口
	static Xiadan xiadan=new Xiadan("订单信息");				//订单信息窗口
	public static void main(String args[]) throws InterruptedException {

		for (int index = 0; index < frames.length; index++) {
			frames[index].setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			frames[index].setPreferredSize(new Dimension(1000,900));
      screencentre(frames[index]);

			frames[index].pack();
		}
		frames[0].setVisible(true);

	}
  //使框架显示在屏幕中央
	public static void screencentre(JFrame frame) {

		Toolkit kit = Toolkit.getDefaultToolkit(); // 定义工具包

		Dimension screenSize = kit.getScreenSize(); // 获取屏幕的尺寸

		int screenWidth = screenSize.width; // 获取屏幕的宽

		int screenHeight = screenSize.height; // 获取屏幕的高

		frame.setLocation(screenWidth/4, screenHeight/15);// 设置窗口居中显示
	}
}

程序运行第一个界面:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Beginning extends JFrame{
	JPanel panel = new JPanel();
	JLabel title = new JLabel("欢迎光临KFC",JLabel.CENTER);	//标签组件
	JLabel im = new JLabel(new ImageIcon("images/1.jpg"));	//标签组件
	JButton order=new JButton(new ImageIcon("images/4.png"));	//按钮组件
	public Beginning(String name)
	{
		super(name);
		setLayout(new GridLayout(4,1));						//设置布局
		title.setFont(new Font("KFC",Font.BOLD,50) );			//设置字体
		add(title);												//添加组件
		add(im);
		order.addActionListener(new BeginLis());				//添加监听者
		order.setBorderPainted(false);							//去边界
		JPanel jpanel2=new JPanel();
		jpanel2.setLayout(new GridLayout(1,3));
		jpanel2.add(new JPanel());
		jpanel2.add(order);
		jpanel2.add(new JPanel());
		add(jpanel2);
		//panel.add(title);
		//getContentPane().add(panel);
	}
	private class BeginLis implements ActionListener {
	  public void actionPerformed(ActionEvent e) {
	  	setVisible(false);
    	run.frames[1].setVisible(true);
		}
	}
}

二维码支付窗口:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class saoma extends JFrame{
	JPanel jpanel=new JPanel();
	JButton buttonwancheng=new JButton("支付完成");
	public saoma(String name) {
		super(name);
		JLabel jlabel=new JLabel(new ImageIcon("images/saoma.png"));
		jpanel.add(jlabel);
		this.setSize(700, 700);
		this.setLocation(300, 200);
		this.add(jpanel);
		this.add(buttonwancheng,BorderLayout.SOUTH);

		buttonwancheng.addActionListener(e->{
			run.sao.setVisible(false);
			run.xiadan.setVisible(false);
			run.frames[1].setVisible(false);
			System.exit(-1);
		});
	}
}

现金支付窗口:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Xianjin extends JFrame{
	JPanel jpanel=new JPanel();

	JLabel jlabel=new JLabel("掏出整钱");
	JTextField in=new JTextField(20);
	JButton buttonzhifu=new JButton("支付");
	public Xianjin(String name) {
		super(name);
		this.setLayout(new GridLayout(2,1));
		this.setSize(700, 450);
		this.setLocation(300, 200);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
		JTextArea show=new JTextArea(24,20);
		JScrollPane scrollpane=new JScrollPane(show);
		show.setEditable(false);
		show.append("您需要支付"+run.order.client1.num+"元"+'\n'+"请在下方输入框输入金钱进行支付以及找零:\n");
		this.add(scrollpane);
		jpanel.add(jlabel);
		jpanel.add(in);
		jpanel.add(buttonzhifu);
		this.add(jpanel);
		buttonzhifu.addActionListener(e->{
			String content=in.getText();
			float jinqian=Integer.parseInt(content);
			float zhaoling=jinqian-run.order.client1.num;
			if(jinqian<run.order.client1.num)
			{
				show.append("您给的钱不够支付,请重新支付\n");
			}
			else
				show.append("您支付了"+jinqian+"元,找您"+zhaoling+"元\n"+"本次订单完成\n");
			in.setText("");
		});
	}
}

下单窗口:

 import java.awt.*;
  import java.awt.event.*;
  import javax.swing.*;
  public class Xiadan extends JFrame{
  	JButton buttonxianjinzhifu=new JButton(new ImageIcon("images/xianjinzhifu.png"));
  	JButton buttonzhifubaosaoma=new JButton(new ImageIcon("images/zhifubaosaoma.png"));
  	JTextArea show=new JTextArea(24,20);
  	public Xiadan(String name)
  	{
  		super(name);

  		}
  	public void s() {
  		this.setLayout(new GridLayout(2,1));
  		this.setSize(700, 450);
  		this.setLocation(300, 200);

  		this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);

  		JScrollPane scrollpane=new JScrollPane(show);
  		show.setEditable(false);
}

四、测试以及运行结果

程序运行界面:

点击“点餐饮”:

点击各食物的“+”:

点击“立即购买”:

点击“现金支付”并在文本框输入30后点击“支付”:

点击“扫码支付”:

五、总结

初次使用java设计可视化程序,对用户图形界面方面的只是很是陌生,本应该结合设计模式使得程序代码结构更加清晰,由于第一次接触图形界面以及设计模式应用实践很少,这次程序设计没有结合好设计模式,这次程序代码也相对很是糙,在写的过程中遇到各种问题,图形界面设计总是不在理想状态,慢慢的上网查资料以及查阅书本大多数得到了解决,只不过程序还存在一些小问题,一点点积累经验吧。

有了这次实践的经验,下次一定会做出稍漂亮的界面以及设计更加结构清晰的代码。

以上所述是小编给大家介绍的java肯德基点餐系统详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • java实现酒店管理系统

    本文实例为大家分享了java实现酒店管理系统的具体代码,供大家参考,具体内容如下 编写环境:MyEclipse2014+sql server2014 系统功能: 1.登录验证 2.房态统计显示 3.预定登记并入库 4.入住登记并入库 5.换房登记并入库 6.客人信息查询 7.退房并入库 运行界面如下: =====登录界面====== =====主界面===== =====为每个房间设置弹出菜单====== =====登记界面====== =====换房界面===== =====退房界面=====

  • java实现学生信息管理系统

    JAVA简单写学生信息管理系统,实现学生信息的输入.查询.修改.删除操作 package Week; import jdk.internal.util.xml.impl.Input; import java.util.HashSet; import java.util.Scanner; public class StudentMs { Scanner sc = new Scanner(System.in); public int getID() { return ID; } public Str

  • Java按时间梯度实现异步回调接口的方法

    1. 背景 在业务处理完之后,需要调用其他系统的接口,将相应的处理结果通知给对方,若是同步请求,假如调用的系统出现异常或是宕机等事件,会导致自身业务受到影响,事务会一直阻塞,数据库连接不够用等异常现象,可以通过异步回调来防止阻塞,但异步的情况还存在一个问题,若调用一次不成功的话接下来怎么处理?这个地方就需要按时间梯度回调,比如前期按10s间隔回调,回调3次,若不成功按30s回调,回调2次,再不成功按分钟回调,依次类推--相当于给了对方系统恢复的时间,不可能一直处于异常或宕机等异常状态,若是再不成

  • Java吃货联盟订餐系统代码实例

    本文实例为大家分享了Java订餐系统的具体代码,供大家参考,具体内容如下 package cn.practice1200; import java.util.Scanner; public class Eater_Alliance { /** * 吃货联盟订餐系统 * * @author QCD * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner

  • Java多线程之火车售票系统

    Java多线程之火车售票(Thread和Runnable的区别) java中实现多线程的方式有两种 继承Thread类 实现Runnable接口 继承了Thread类的类,使用对象.start()启动线程 实现了Runnable类的类,使用new Thread(new Runnable的实现类()).start()启动 下面有个经典例子,很适合用实现Runnable接口的类去实现. 火车售票问题简单分析: 1.票数是共用的,不能将一张票买多次.  2.同时有多个售票点在出售车票,即有多个线程存在

  • Javacript实现颜色梯度变化和渐变的效果代码

    对于本站的导航栏,想做点什么.所以,选择了用js对导航栏的颜色做了梯度的变化处理. 起初,觉得用opacity属性(透明度)来改变颜色的梯度变化.不过,这样会出现一个问题. 每一个导航标签用的是[li],当鼠标浮动到标签上时,通过onmouseover()立即改变[li]的className,并用setInterval()来使其opacity(透明度)由0变到1.不过,当鼠标离开时,对于[li]标签的颜色恢复的处理貌似麻烦了许多.所以,很快就放弃了这个做法,换种思路. 到百度上一搜,看到了一篇很

  • java实现简单的学生信息管理系统代码实例

    java实现简单的学生信息管理系统(无界面) 学生类实体: package com.edu.imau.wcy; public class Stu { private String stuNum;//学号 private String name;//姓名 private String gender;//性别 private int age;//年龄 private int score;//分数 public Stu() { super(); } public String getStuNum()

  • 基于Java的电梯系统实现过程

    一.思路 写一个简单的电梯系统,首先根据老师提供的需求,写一下基础思路: 电梯有最高层和最低层,输入数字选择正确楼层数 输入数字大于当前楼层,则为上行:小于当前楼层,则为下行 每次输入数字的时候,需要对同为上行的数字或者同为下行的数字,进行排序 所输入的目标楼层用集合存放,循环最低层到最高层,如果当前层在集合中存在,显示开门,若还有目标楼层,则关门,继续到下一目标楼层. 当选择一个目标楼层,会生成随机重量记录在目标楼层,上行用原来重量加上目标楼层重量,下行则用原来重量减去目标楼层重量 二.实现

  • java实现可视化界面肯德基(KFC)点餐系统代码实例

    一.题目 使用java实现可视化KFC点餐系统. 二.题目分析 根据java中的用户图形界面包中的各个类设计界面.利用JFrame提供最大的容器,然后设计各个面板,各个面板中添加所需要的组件,本程序中需要对按钮组件添加监听者,当按下按钮之后做出相应的相应. 对于程序运行显示的第一个界面由一个继承于JFrame的类run类在构造函数中设计并通过函数setVisible(true)显示在界面上,界面上有一个按钮"点餐饮",当此按钮按下时触发响应函数,进入点餐界面,然后通过点击点餐界面各食物

  • Java实现KFC点餐系统过程解析

    这篇文章主要为大家详细介绍了java实现KFC点餐系统,模拟肯德基快餐店的收银系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++/python/Java,结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结算和找零. 2.基本套餐结算和找零. 3.使用优惠劵购买餐品结算和找零. 4.可在一定时间段参与店内活动(自行设计或参考官网信息). 5.模拟打印小票的功能(写到文件

  • C++实现KFC点餐系统

    本文实例为大家分享了C++实现KFC点餐系统的具体代码,供大家参考,具体内容如下 一.题目名称:模拟肯德基收银系统 二.题目内容: 同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++或Java或Python结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结算和找零. 2.基本套餐结算和找零. 3.使用优惠劵购买餐品结算和找零. 4.可在一定时间段参与店内活动(自行设计或参考官网信息). 5.模拟打印小票的功能(写到文件中)

  • Java编程使用UDP建立群聊系统代码实例

    相关java类介绍 DatagramSocket public class DatagramSocket extends Object 此类表示用来发送和接收数据报包的套接字. 数据报套接字是包投递服务的发送或接收点.每个在数据报套接字上发送或接收的包都是单独编址和路由的.从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达. 在DatagramSocket上总是启用UDP广播发送.为了接收广播包,应该将DatagramSocket绑定到通配符地址,在某些实现中,将Dat

  • java实体对象与Map之间的转换工具类代码实例

    这篇文章主要介绍了java实体对象与Map之间的转换工具类代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Map接口中键和值一一映射. 可以通过键来获取值. 给定一个键和一个值,你可以将该值存储在一个Map对象. 之后,你可以通过键来访问对应的值. 当访问的值不存在的时候,方法就会抛出一个NoSuchElementException异常. 当对象的类型和Map里元素类型不兼容的时候,就会抛出一个 ClassCastException异常

  • java从命令行获取数据的三种方式代码实例

    这篇文章主要介绍了java从命令行获取数据的三种方式代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 第一种:利用Scanner对象 import java.util.Scanner; public class TestInputOuput { public static void main(String[] args) { System.out.println("请输入:"); Scanner inp = new Scanne

  • java实现KFC点餐系统

    同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++/python/Java,结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结算和找零. 2.基本套餐结算和找零. 3.使用优惠劵购买餐品结算和找零. 4.可在一定时间段参与店内活动(自行设计或参考官网信息). 5.模拟打印小票的功能(写到文件中). 类图: 建立IFood接口实现各类食物信息的打印: public interface IFood { /** * 打印输出食物

  • Java实现餐厅点餐系统的实例代码

    学习Java实现餐厅点餐系统,本文实现该系统的功能截图,和数据库设计SQL语句,系统功能图,功能优势等供大家参考 1.点餐管理系统背景 随着科技的发展,去饭店吃饭点餐和结账都是以线上操作的形势完成. a.和现在有的系统比较起来,本系统有餐桌管理,菜系管理,菜名管理,订单管理,订单详情等功能. b.和现有系统比较起来,本系统是B/S结构,一般点餐系统为C/S结构,性能方面不如B/S结构,并且C/S接口需要安装客户端,客户端压力很大,我的系统只需要电脑或者手机具有浏览器,在同一局域网就可以进行订餐.

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

    大家应该都去麦当劳或肯德基吃过快餐,参考肯德基官网的信息模拟肯德基快餐店的收银系统,简单的java Gui模拟的肯德基收银系统. 1.系统介绍 同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++/python/Java,结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结算和找零. 2.基本套餐结算和找零. 3.使用优惠劵购买餐品结算和找零. 4.可在一定时间段参与店内活动(自行设计或参考官网信息). 5.模拟打印小票的功能

随机推荐