欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-02-24 13:57:10
一、题目 使用java实现可视化kfc点餐系统。 二、题目分析 根据java中的用户图形界面包中的各个类设计界面。利用jframe提供最大的容器,然后设计各个面板,各...

一、题目

使用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);
}

四、测试以及运行结果

程序运行界面:

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

点击“点餐饮”:

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

点击各食物的“+”:

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

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

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

点击“立即购买”:

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

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

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

点击“扫码支付”:

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

 五、总结

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

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

以上所述是小编给大家介绍的java肯德基点餐系统详解整合,希望对大家有所帮助