📜  使用Java Swing 的披萨店计费系统

📅  最后修改于: 2022-05-13 01:57:41.562000             🧑  作者: Mango

使用Java Swing 的披萨店计费系统

Java是一种引人入胜的编程语言,它为用户提供了许多特性,如 OOP、平台独立性、简单性、基于 GUI 的编程等。其中一个特性是使用Java Foundation Classes提供的 Swing 工具包创建健壮的应用程序。这可用于为简单的应用程序创建轻量级的可视化组件,例如 EMI 计算器、税收计算器、计费系统、记录管理系统等。本文旨在指导初学者如何使用Java Swing 工具包创建基于 GUI 的Java应用程序。

考虑一个当地比萨店的场景,该店正在从传统的手动计算账单方法转变为自动计费系统。根据他们的要求,客户需要选择两个东西

  1. 比萨基础型
  2. 浇头的选择

基于这些,计算和打印总金额。比萨饼可以有超过 1 个浇头,但一次只能有一种外壳。以下是创建应用程序的定价详细信息。

Pan PizzaStuffedRegularOnionCheeseTomatoBaby Corn
Rs. 200Rs. 300Rs. 150Rs. 60Rs. 30Rs. 40Rs. 50

Java swing 相对于普通应用程序的优势

  1. 无需处理大量代码,因此降低了编程的复杂性。
  2. 提供基于 GUI(图形用户界面)的编辑器,以便于理解

Netbeans 用于创建 GUI 应用程序,因为它是一个精心设计的开源 IDE,提供组件检查器、小部件拖放、调试器、对象浏览器等功能。

创建比萨店计费系统的步骤:

按照步骤创建应用程序。

  • 通过单击New Project -> Java -> Java Application创建一个新的Java应用程序,并给出一个合适的项目名称。例如:GeeksForGeeks 并单击完成。

点击新建项目

  • 现在通过转到菜单栏上的文件选项创建一个新文件,然后是新建文件-> Swing GUI 表单-> JFrame 表单,并提供合适的文件名。例如。比萨比尔。 Java ,然后单击完成。

  • 成功创建文件后,您现在将看到以下屏幕。此窗口的 3 个重要部分是:
    1. 设计:这是我们将创建应用程序设计/模板的区域。
    2. 来源:这是编写程序逻辑代码的地方。
    3. 调色板:该组件包含我们需要拖放到设计区域的所有小部件。
  • 现在,在编码并从调色板中拖出小部件之前,创建一个应用程序确切需要的粗略设计。这使程序员可以更好地理解问题陈述的确切预期。 Java Swing 包含许多组件或控件,但有必要了解我们的应用程序需要什么。根据下面的粗略图,应用程序应显示无法编辑的信息。例如公司名称、菜单选项等。这是我们使用Jlabel (Java标签控件)的地方。现在根据用户的选择,需要将信息输入系统,因此我们使用JTextField控件。根据这个问题,一个比萨可以有超过 1 个浇头,但一次只能有一种外壳。因此,我们分别使用JCheckBoxJRadioButton控件。现在,要对所有类似的组件(如单选按钮和复选框)进行分组和保存,您可以使用JPanel 最后,我们需要一个用于执行程序逻辑的命令/动作按钮。这是在JButton的帮助下完成的

预期应用的粗略设计

  • 现在从位于窗口右侧的调色板中,按照上图开始拖动工具包小部件。

将组件从调色板拖到设计区域

  • 移动所有组件后,您的设计应如下所示。

比萨计费系统设计

  • 现在让我们快速浏览下表列出的程序中每个组件的用法。请参阅上图中的相应对象编号。
No.Object TypeObject NameDescription
1LabeljLabel1: Bistro Pizza Bill CalculatorDescribes title of the application
  jLabel2: Order No.Defines order number
  jLabel3: Customer NameDefines  customer name
  jLabel4: QuantityDefines the quantity of pizza
  jLabel5: RateDefines rate of each pizza type
  jLabel6: AmountDefines total payable amount
  jLabel7: Cost of ToppingsDefines total cost of toppings
2TextBoxjTextField1Variable 1
  jTextField2Variable 2
  jTextField3Variable 3
  jTextField4Variable 4
  jTextField5Variable 5
  jTextField6Variable 6
3PaneljPanel1Container to hold components
  jPanel2Container to hold components
4RadioButtonsjRadioButton1Choice of Pan Pizza
  jRadioButton2Choice of Stuffed Crust
  jRadioButton3Choice of Regular Pizza
5CheckBoxjCheckBox1Option for Onion 
  jCheckBox2Option for Cheese
  jCheckBox3Option for Tomato
  jCheckBox4Option for Baby Corn
6Command ButtonjButton1Generates bill
  jButton2Clears content of all components
7TextArea (Optional)jTextArea1Displays customer related information and billing details
  • 现在键入代码,双击jButton1 您将被定向到源选项卡。在这里输入以下代码。

在 JButton1 Action Button 下输入代码

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("");


  • 这样就完成了应用程序的创建。输入必要的详细信息并从下拉菜单中选择运行文件选项。

最终输出

输出: