Java Gui实现肯德基点餐收银系统
1. 简介
本攻略旨在介绍如何使用Java Gui实现肯德基点餐收银系统。
2. 技术框架
本文使用如下技术框架:
- Java: JDK 1.8及以上版本
- Swing: Java的GUI组件库
- Eclipse: Java开发IDE
3. 实现步骤
3.1. 搭建开发环境
首先,需要在计算机上安装JDK和Eclipse。
安装完毕后,打开Eclipse创建一个Java工程,并在工程中创建一个名为KFC
的包。
3.2. 设计UI界面
使用Swing GUI组件库,可以轻松实现图形化界面的设计。为实现KFC点餐收银系统,需要至少设计以下三个面板:
- 主界面-可以选择餐品,输入数量等;
- 支付界面-在这里填写支付信息;
- 统计界面-可以展示订单详情并统计收入信息
下面是主界面的设计示例:
package KFC;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
public class KFC_JFrame extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private JLabel lblNewLabel;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
KFC_JFrame frame = new KFC_JFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public KFC_JFrame() {
setTitle("KFC点餐收银系统");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblNewLabel_1 = new JLabel("图片1");
lblNewLabel_1.setIcon(new ImageIcon(KFC_JFrame.class.getResource("/KFC/image1.png")));
lblNewLabel_1.setBounds(21, 10, 163, 81);
contentPane.add(lblNewLabel_1);
JLabel lblNewLabel_2 = new JLabel("图片2");
lblNewLabel_2.setIcon(new ImageIcon(KFC_JFrame.class.getResource("/KFC/image2.png")));
lblNewLabel_2.setBounds(212, 10, 163, 81);
contentPane.add(lblNewLabel_2);
}
}
3.3. 实现业务逻辑
完成UI界面设计后,需要在具体的组件中添加逻辑处理。这里仅简单介绍如何统计订单金额的方法。
首先,需要在主界面上添加一个JButton
来实现确认点餐的功能,当用户点击确认以后,需要将订单信息传递到订单详情面板上,同时累加订单总金额。
以下是示例代码:
JButton confirmButton = new JButton("确认提交");
confirmButton.setBounds(314, 172, 96, 23);
contentPane.add(confirmButton);
confirmButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 把点的菜品放入订单列表
OrderData.addOrderItem(itemList);
// 计算总金额
float totalPrice = OrderData.totalPrice();
// 显示订单详情
OrderPanel.showOrderList();
// 更新订单总金额的显示
lblNewLabel.setText("Total Price: " + totalPrice);
}
});
OrderData
类用于保存订单信息,totalPrice()
方法用于通过循环累加订单中各个商品的价格,实现对当前订单的金额的统计。OrderPanel
类用于展示当前订单。
3.4. 测试运行
完成以上步骤后,就可以通过运行应用程序来测试实现是否正确。
4. 总结
本文介绍了使用Java Gui实现KFC点餐收银系统的完整攻略,其中包括开发环境的搭建、UI界面的设计,以及业务逻辑的实现。在此基础上,可以进一步扩展功能,实现更多实用的KFC点餐收银系统功能。
5. 示例说明
示例1:展示订单列表
在统计界面上添加一个JTable
用于显示订单列表,代码如下:
table = new JTable();
table.setModel(new DefaultTableModel(new Object[][] {}, new String[] { "菜品名称", "数量", "价格" }));
scrollPane.setViewportView(table);
public static void showOrderList() {
DefaultTableModel dtm = (DefaultTableModel) table.getModel();
dtm.setRowCount(0);
for (OrderItem oi : OrderData.orderList) {
dtm.addRow(new Object[] { oi.getName(), oi.getQuantity(), oi.getPrice() });
}
}
showOrderList()
方法实现的功能是通过循环遍历当前的订单,调用addRow()
方法将订单信息逐行添加到JTable
的数据模型中,从而更新订单列表的显示内容。
示例2:扩展UI界面
可以根据实际需求,进一步扩展界面设计,实现更多实用的功能。
例如,在主界面上添加购物车,可以让用户更方便地管理已选的商品:
cartPanel = new CartPanel();
cartPanel.setBounds(185, 74, 225, 75);
contentPane.add(cartPanel);
cartPanel.setVisible(false);
CartPanel
类继承自JPanel
类,用于显示已选商品的名称、数量和价格。setVisible()
方法用于在用户没有购买任何商品时隐藏购物车。在用户购买商品时,CartPanel
类就会更新购物车显示的内容。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java Gui实现肯德基点餐收银系统 - Python技术站