最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java實(shí)現(xiàn)可視化界面肯德基(KFC)點(diǎn)餐系統(tǒng)代碼實(shí)例

 更新時間:2019年05月15日 08:31:47   作者:西科大最帥的仔  
這篇文章主要介紹了java肯德基點(diǎn)餐系統(tǒng),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、題目

使用java實(shí)現(xiàn)可視化KFC點(diǎn)餐系統(tǒng)。

二、題目分析

根據(jù)java中的用戶圖形界面包中的各個類設(shè)計(jì)界面。利用JFrame提供最大的容器,然后設(shè)計(jì)各個面板,各個面板中添加所需要的組件,本程序中需要對按鈕組件添加監(jiān)聽者,當(dāng)按下按鈕之后做出相應(yīng)的相應(yīng)。

對于程序運(yùn)行顯示的第一個界面由一個繼承于JFrame的類run類在構(gòu)造函數(shù)中設(shè)計(jì)并通過函數(shù)setVisible(true)顯示在界面上,界面上有一個按鈕“點(diǎn)餐飲”,當(dāng)此按鈕按下時觸發(fā)響應(yīng)函數(shù),進(jìn)入點(diǎn)餐界面,然后通過點(diǎn)擊點(diǎn)餐界面各食物的按鈕“+”“-”觸發(fā)響應(yīng)改變用戶類client的對象的相對應(yīng)變量的數(shù)量并且刷新界面,此界面還有食物種類的四個按鈕“漢堡”“小吃”“飲品”“套餐”,同樣點(diǎn)擊按鈕觸發(fā)響應(yīng)刷新出對應(yīng)的界面,之后設(shè)計(jì)了兩種付款模式,一種是現(xiàn)金付款,使用文本框組件類JTextField產(chǎn)生組件,在此組件中輸入你的支付金額,另外是掃二維碼支付,只需一個標(biāo)簽組件JLabel中加入圖片即可。

三、程序代碼

由于初次使用java設(shè)計(jì)可視化界面的程序,沒有設(shè)計(jì)好導(dǎo)致源代碼繁瑣,以下列出部分代碼

主函數(shù)類:

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);// 設(shè)置窗口居中顯示
	}
}

程序運(yùn)行第一個界面:

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);	//標(biāo)簽組件
	JLabel im = new JLabel(new ImageIcon("images/1.jpg"));	//標(biāo)簽組件
	JButton order=new JButton(new ImageIcon("images/4.png"));	//按鈕組件
	public Beginning(String name)
	{
		super(name);
		setLayout(new GridLayout(4,1));						//設(shè)置布局
		title.setFont(new Font("KFC",Font.BOLD,50) );			//設(shè)置字體
		add(title);												//添加組件
		add(im);
		order.addActionListener(new BeginLis());				//添加監(jiān)聽者
		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);
		});
	}
}

現(xiàn)金支付窗口:

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'+"請?jiān)谙路捷斎肟蜉斎虢疱X進(jì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);
}

四、測試以及運(yùn)行結(jié)果

程序運(yùn)行界面:

點(diǎn)擊“點(diǎn)餐飲”:

 

點(diǎn)擊各食物的“+”:

 

點(diǎn)擊“立即購買”:

 

點(diǎn)擊“現(xiàn)金支付”并在文本框輸入30后點(diǎn)擊“支付”:

 

點(diǎn)擊“掃碼支付”:

 

 五、總結(jié)

初次使用java設(shè)計(jì)可視化程序,對用戶圖形界面方面的只是很是陌生,本應(yīng)該結(jié)合設(shè)計(jì)模式使得程序代碼結(jié)構(gòu)更加清晰,由于第一次接觸圖形界面以及設(shè)計(jì)模式應(yīng)用實(shí)踐很少,這次程序設(shè)計(jì)沒有結(jié)合好設(shè)計(jì)模式,這次程序代碼也相對很是糙,在寫的過程中遇到各種問題,圖形界面設(shè)計(jì)總是不在理想狀態(tài),慢慢的上網(wǎng)查資料以及查閱書本大多數(shù)得到了解決,只不過程序還存在一些小問題,一點(diǎn)點(diǎn)積累經(jīng)驗(yàn)吧。

有了這次實(shí)踐的經(jīng)驗(yàn),下次一定會做出稍漂亮的界面以及設(shè)計(jì)更加結(jié)構(gòu)清晰的代碼。

以上所述是小編給大家介紹的java肯德基點(diǎn)餐系統(tǒng)詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • SpringBoot整合redis使用緩存注解詳解

    SpringBoot整合redis使用緩存注解詳解

    這篇文章主要介紹了SpringBoot整合redis使用緩存注解詳解,@Cacheable在方法執(zhí)行前判斷對應(yīng)緩存是否存在,如果存在直接返回緩存結(jié)果,否者執(zhí)行方法將結(jié)果緩存,適用于查詢類,需要的朋友可以參考下
    2024-01-01
  • Java實(shí)現(xiàn)ZooKeeper的zNode監(jiān)控

    Java實(shí)現(xiàn)ZooKeeper的zNode監(jiān)控

    這篇文章主要介紹了Java實(shí)現(xiàn)ZooKeeper的zNode監(jiān)控問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-08-08
  • Spring實(shí)現(xiàn)HikariCP連接池的示例代碼

    Spring實(shí)現(xiàn)HikariCP連接池的示例代碼

    在SpringBoot 2.0中,我們使用默認(rèn)連接池是HikariCP,本文講一下HikariCP的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2021-08-08
  • Springboot實(shí)現(xiàn)人臉識別與WebSocket長連接的實(shí)現(xiàn)代碼

    Springboot實(shí)現(xiàn)人臉識別與WebSocket長連接的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Springboot實(shí)現(xiàn)人臉識別與WebSocket長連接的實(shí)現(xiàn),本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-11-11
  • Java解析XML(4種方式)案例詳解

    Java解析XML(4種方式)案例詳解

    這篇文章主要介紹了Java解析XML(4種方式)案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Maven的聚合(多模塊)和Parent繼承

    Maven的聚合(多模塊)和Parent繼承

    今天小編就為大家分享一篇關(guān)于Maven的聚合(多模塊)和Parent繼承,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Maven中optional標(biāo)簽用法詳解

    Maven中optional標(biāo)簽用法詳解

    這篇文章主要介紹了Maven中optional標(biāo)簽,文章中有詳細(xì)的代碼示例供大家參考,對大家的學(xué)習(xí)或工作有一定的參考價值,感興趣的小伙伴可以借鑒一下
    2023-05-05
  • Java雙重校驗(yàn)鎖單例原理

    Java雙重校驗(yàn)鎖單例原理

    大家好,本篇文章主要講的是Java雙重校驗(yàn)鎖單例原理,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Java并發(fā)編程中使用Executors類創(chuàng)建和管理線程的用法

    Java并發(fā)編程中使用Executors類創(chuàng)建和管理線程的用法

    這篇文章主要介紹了Java并發(fā)編程中使用Executors類創(chuàng)建和管理線程的用法,文中舉了用其啟動線程和設(shè)置線程優(yōu)先級的例子,需要的朋友可以參考下
    2016-03-03
  • Maven生成可直接運(yùn)行的jar包(多種方式)

    Maven生成可直接運(yùn)行的jar包(多種方式)

    文章介紹了三種使用Maven生成可以直接運(yùn)行的jar包的方法:通過maven-jar-plugin和maven-dependency-plugin插件、maven-assembly-plugin插件以及maven-shade-plugin插件,每種方法都有其特點(diǎn)和適用場景,感興趣的朋友跟隨小編一起看看吧
    2024-11-11

最新評論

沂水县| 民勤县| 临漳县| 高阳县| 旬阳县| 蒙阴县| 精河县| 山阳县| 新余市| 武山县| 新建县| 新和县| 霍山县| 治多县| 绵竹市| 香港 | 太仓市| 安多县| 河曲县| 山东省| 唐山市| 分宜县| 邓州市| 桑植县| 晋宁县| 高台县| 繁峙县| 岢岚县| 桓台县| 京山县| 德庆县| 湘潭市| 信宜市| 防城港市| 哈密市| 通道| 临朐县| 响水县| 延寿县| 卢龙县| 蒙自县|