您好,登錄后才能下訂單哦!
這篇文章主要介紹了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如何實現可視化界面肯德基KFC點餐系統”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。