java實(shí)現(xiàn)可視化界面肯德基(KFC)點(diǎn)餐系統(tǒng)代碼實(shí)例
一、題目
使用java實(shí)現(xiàn)可視化KFC點(diǎn)餐系統(tǒng)。
二、題目分析
根據(jù)java中的用戶圖形界面包中的各個(gè)類設(shè)計(jì)界面。利用JFrame提供最大的容器,然后設(shè)計(jì)各個(gè)面板,各個(gè)面板中添加所需要的組件,本程序中需要對(duì)按鈕組件添加監(jiān)聽(tīng)者,當(dāng)按下按鈕之后做出相應(yīng)的相應(yīng)。
對(duì)于程序運(yùn)行顯示的第一個(gè)界面由一個(gè)繼承于JFrame的類run類在構(gòu)造函數(shù)中設(shè)計(jì)并通過(guò)函數(shù)setVisible(true)顯示在界面上,界面上有一個(gè)按鈕“點(diǎn)餐飲”,當(dāng)此按鈕按下時(shí)觸發(fā)響應(yīng)函數(shù),進(jìn)入點(diǎn)餐界面,然后通過(guò)點(diǎn)擊點(diǎn)餐界面各食物的按鈕“+”“-”觸發(fā)響應(yīng)改變用戶類client的對(duì)象的相對(duì)應(yīng)變量的數(shù)量并且刷新界面,此界面還有食物種類的四個(gè)按鈕“漢堡”“小吃”“飲品”“套餐”,同樣點(diǎn)擊按鈕觸發(fā)響應(yīng)刷新出對(duì)應(yīng)的界面,之后設(shè)計(jì)了兩種付款模式,一種是現(xiàn)金付款,使用文本框組件類JTextField產(chǎn)生組件,在此組件中輸入你的支付金額,另外是掃二維碼支付,只需一個(gè)標(biāo)簽組件JLabel中加入圖片即可。
三、程序代碼
由于初次使用java設(shè)計(jì)可視化界面的程序,沒(méi)有設(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)行第一個(gè)界面:
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)聽(tīng)者
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("掏出整錢(qián)");
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'+"請(qǐng)?jiān)谙路捷斎肟蜉斎虢疱X(qián)進(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("您給的錢(qián)不夠支付,請(qǐng)重新支付\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);
}
四、測(cè)試以及運(yùn)行結(jié)果
程序運(yùn)行界面:

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

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



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

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

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

五、總結(jié)
初次使用java設(shè)計(jì)可視化程序,對(duì)用戶圖形界面方面的只是很是陌生,本應(yīng)該結(jié)合設(shè)計(jì)模式使得程序代碼結(jié)構(gòu)更加清晰,由于第一次接觸圖形界面以及設(shè)計(jì)模式應(yīng)用實(shí)踐很少,這次程序設(shè)計(jì)沒(méi)有結(jié)合好設(shè)計(jì)模式,這次程序代碼也相對(duì)很是糙,在寫(xiě)的過(guò)程中遇到各種問(wèn)題,圖形界面設(shè)計(jì)總是不在理想狀態(tài),慢慢的上網(wǎng)查資料以及查閱書(shū)本大多數(shù)得到了解決,只不過(guò)程序還存在一些小問(wèn)題,一點(diǎn)點(diǎn)積累經(jīng)驗(yàn)吧。
有了這次實(shí)踐的經(jīng)驗(yàn),下次一定會(huì)做出稍漂亮的界面以及設(shè)計(jì)更加結(jié)構(gòu)清晰的代碼。
以上所述是小編給大家介紹的java肯德基點(diǎn)餐系統(tǒng)詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Java前后端分離的在線點(diǎn)餐系統(tǒng)實(shí)現(xiàn)詳解
- Java 實(shí)戰(zhàn)項(xiàng)目之在線點(diǎn)餐系統(tǒng)的實(shí)現(xiàn)流程
- Java 實(shí)戰(zhàn)項(xiàng)目之在線點(diǎn)餐系統(tǒng)的實(shí)現(xiàn)流程
- Java Swing實(shí)現(xiàn)餐廳點(diǎn)餐系統(tǒng)源碼(收藏版)
- Java實(shí)現(xiàn)KFC點(diǎn)餐系統(tǒng)過(guò)程解析
- Java實(shí)現(xiàn)餐廳點(diǎn)餐系統(tǒng)的實(shí)例代碼
- java實(shí)現(xiàn)KFC點(diǎn)餐系統(tǒng)
- Java實(shí)現(xiàn)簡(jiǎn)單點(diǎn)餐系統(tǒng)
相關(guān)文章
Java實(shí)現(xiàn)ZooKeeper的zNode監(jiān)控
這篇文章主要介紹了Java實(shí)現(xiàn)ZooKeeper的zNode監(jiān)控問(wèn)題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-08-08
Spring實(shí)現(xiàn)HikariCP連接池的示例代碼
在SpringBoot 2.0中,我們使用默認(rèn)連接池是HikariCP,本文講一下HikariCP的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下2021-08-08
Springboot實(shí)現(xiàn)人臉識(shí)別與WebSocket長(zhǎng)連接的實(shí)現(xiàn)代碼
這篇文章主要介紹了Springboot實(shí)現(xiàn)人臉識(shí)別與WebSocket長(zhǎng)連接的實(shí)現(xiàn),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-11-11
Java并發(fā)編程中使用Executors類創(chuàng)建和管理線程的用法
這篇文章主要介紹了Java并發(fā)編程中使用Executors類創(chuàng)建和管理線程的用法,文中舉了用其啟動(dòng)線程和設(shè)置線程優(yōu)先級(jí)的例子,需要的朋友可以參考下2016-03-03

