使用Java Swing 的披萨店计费系统
Java是一种引人入胜的编程语言,它为用户提供了许多特性,如 OOP、平台独立性、简单性、基于 GUI 的编程等。其中一个特性是使用Java Foundation Classes提供的 Swing 工具包创建健壮的应用程序。这可用于为简单的应用程序创建轻量级的可视化组件,例如 EMI 计算器、税收计算器、计费系统、记录管理系统等。本文旨在指导初学者如何使用Java Swing 工具包创建基于 GUI 的Java应用程序。
考虑一个当地比萨店的场景,该店正在从传统的手动计算账单方法转变为自动计费系统。根据他们的要求,客户需要选择两个东西
- 比萨基础型
- 浇头的选择
基于这些,计算和打印总金额。比萨饼可以有超过 1 个浇头,但一次只能有一种外壳。以下是创建应用程序的定价详细信息。Pan Pizza Stuffed Regular Onion Cheese Tomato Baby Corn Rs. 200 Rs. 300 Rs. 150 Rs. 60 Rs. 30 Rs. 40 Rs. 50
Java swing 相对于普通应用程序的优势
- 无需处理大量代码,因此降低了编程的复杂性。
- 提供基于 GUI(图形用户界面)的编辑器,以便于理解
Netbeans 用于创建 GUI 应用程序,因为它是一个精心设计的开源 IDE,提供组件检查器、小部件拖放、调试器、对象浏览器等功能。
创建比萨店计费系统的步骤:
按照步骤创建应用程序。
- 通过单击New Project -> Java -> Java Application创建一个新的Java应用程序,并给出一个合适的项目名称。例如:GeeksForGeeks 并单击完成。
- 现在通过转到菜单栏上的文件选项创建一个新文件,然后是新建文件-> Swing GUI 表单-> JFrame 表单,并提供合适的文件名。例如。比萨比尔。 Java ,然后单击完成。
- 成功创建文件后,您现在将看到以下屏幕。此窗口的 3 个重要部分是:
- 设计:这是我们将创建应用程序设计/模板的区域。
- 来源:这是编写程序逻辑代码的地方。
- 调色板:该组件包含我们需要拖放到设计区域的所有小部件。
- 现在,在编码并从调色板中拖出小部件之前,创建一个应用程序确切需要的粗略设计。这使程序员可以更好地理解问题陈述的确切预期。 Java Swing 包含许多组件或控件,但有必要了解我们的应用程序需要什么。根据下面的粗略图,应用程序应显示无法编辑的信息。例如公司名称、菜单选项等。这是我们使用Jlabel (Java标签控件)的地方。现在根据用户的选择,需要将信息输入系统,因此我们使用JTextField控件。根据这个问题,一个比萨可以有超过 1 个浇头,但一次只能有一种外壳。因此,我们分别使用JCheckBox和JRadioButton控件。现在,要对所有类似的组件(如单选按钮和复选框)进行分组和保存,您可以使用JPanel 。最后,我们需要一个用于执行程序逻辑的命令/动作按钮。这是在JButton的帮助下完成的。
- 现在从位于窗口右侧的调色板中,按照上图开始拖动工具包小部件。
- 移动所有组件后,您的设计应如下所示。
- 现在让我们快速浏览下表列出的程序中每个组件的用法。请参阅上图中的相应对象编号。
No. | Object Type | Object Name | Description |
---|---|---|---|
1 | Label | jLabel1: Bistro Pizza Bill Calculator | Describes title of the application |
jLabel2: Order No. | Defines order number | ||
jLabel3: Customer Name | Defines customer name | ||
jLabel4: Quantity | Defines the quantity of pizza | ||
jLabel5: Rate | Defines rate of each pizza type | ||
jLabel6: Amount | Defines total payable amount | ||
jLabel7: Cost of Toppings | Defines total cost of toppings | ||
2 | TextBox | jTextField1 | Variable 1 |
jTextField2 | Variable 2 | ||
jTextField3 | Variable 3 | ||
jTextField4 | Variable 4 | ||
jTextField5 | Variable 5 | ||
jTextField6 | Variable 6 | ||
3 | Panel | jPanel1 | Container to hold components |
jPanel2 | Container to hold components | ||
4 | RadioButtons | jRadioButton1 | Choice of Pan Pizza |
jRadioButton2 | Choice of Stuffed Crust | ||
jRadioButton3 | Choice of Regular Pizza | ||
5 | CheckBox | jCheckBox1 | Option for Onion |
jCheckBox2 | Option for Cheese | ||
jCheckBox3 | Option for Tomato | ||
jCheckBox4 | Option for Baby Corn | ||
6 | Command Button | jButton1 | Generates bill |
jButton2 | Clears content of all components | ||
7 | TextArea (Optional) | jTextArea1 | Displays customer related information and billing details |
- 现在键入代码,双击jButton1 ,您将被定向到源选项卡。在这里输入以下代码。
Java
// Takes input from TextFields
int orderno
= Integer.parseInt(
jTextField1.getText());
String custname
= jTextField2.getText();
int qty
= Integer.parseInt(
jTextField3.getText());
double rate = 0;
// Pizza Type conditions
if (jRadioButton1.isSelected()) {
rate = 200;
}
else if (jRadioButton2.isSelected()) {
rate = 300;
}
else if (jRadioButton3.isSelected()) {
rate = 150;
}
// Displays rate of selected pizza
// type in TextField
jTextField4.setText(
"" + rate);
double topamt = 0;
// Pizza toppings conditions
if (jCheckBox1.isSelected()) {
topamt = 60;
}
if (jCheckBox2.isSelected()) {
topamt = topamt + 30;
}
if (jCheckBox3.isSelected()) {
topamt = topamt + 40;
}
if (jCheckBox4.isSelected()) {
topamt = topamt + 50;
}
// Displays total amount of
// selected pizza toppings in TextField
jTextField6.setText(
""
+ topamt);
// Total amount is calculated
double totalpayable
= (rate * qty) + topamt;
jTextField5.setText("" + totalpayable);
// Displays order details
jTextArea1
.setText(
"Hello, your Order Id is: " + orderno
+ "\nName: " + custname
+ "\nAMOUNT PAYABLE IS: " + totalpayable);
Java
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
jTextField5.setText("");
jTextField6.setText("");
jRadioButton1.setSelected(false);
jRadioButton2.setSelected(false);
jRadioButton3.setSelected(false);
jCheckBox1.setSelected(false);
jCheckBox2.setSelected(false);
jCheckBox3.setSelected(false);
jCheckBox4.setSelected(false);
jTextArea1.setText("");
- 现在要清除所有文本字段、文本区域、单选按钮和复选框,在jButton2 ActionPerformed选项下编写以下代码,这可以通过在设计区域中单击两次清除按钮来实现。
Java
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
jTextField5.setText("");
jTextField6.setText("");
jRadioButton1.setSelected(false);
jRadioButton2.setSelected(false);
jRadioButton3.setSelected(false);
jCheckBox1.setSelected(false);
jCheckBox2.setSelected(false);
jCheckBox3.setSelected(false);
jCheckBox4.setSelected(false);
jTextArea1.setText("");
- 这样就完成了应用程序的创建。输入必要的详细信息并从下拉菜单中选择运行文件选项。
输出: