我正在为一所学校项目工作,它与GUI有关。我应该制作一个程序,允许人们从比萨饼的三种尺寸和八种配料中进行选择。他们可以根据需要选择多个浇头,所以我不能做任何按钮组。
但是,我遇到了一个反复出现的问题。一旦我运行程序,屏幕上显示的唯一内容就是" Mushroom"顶部和总价格的文本字段。当我选中复选框时,该字段显示" $ 0.00"。
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Assignment18 extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel panel1 = new JPanel();
private JPanel panel2 = new JPanel();
private JLabel message1, message2;
private JTextField results;
private JButton calculate;
private JCheckBox small;
private JCheckBox medium;
private JCheckBox large;
private JCheckBox bacon;
private JCheckBox chicken;
private JCheckBox pineapple;
private JCheckBox anchovies;
private JCheckBox pepperoni;
private JCheckBox spinach;
private JCheckBox sausage;
private JCheckBox mushroom;
private JFrame frame = new JFrame();
public Assignment18() {
setTitle("Pizza Calculator");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation(500, 300);
buildPanel1();
buildPanel2();
setLayout(new BorderLayout());
add(panel1, BorderLayout.NORTH);
add(panel2, BorderLayout.SOUTH);
pack();
setVisible(true);
}
public void buildPanel1() {
message1 = new JLabel("Pizza Sizes: ");
message2 = new JLabel("Pizza Toppings(All toppings are $1.50):");
small = new JCheckBox("Small ($8.00)");
medium = new JCheckBox("Medium ($9.50)");
large = new JCheckBox("Large ($11.00)");
bacon = new JCheckBox("Bacon");
chicken = new JCheckBox("Chicken");
pineapple = new JCheckBox("Pineapple");
anchovies = new JCheckBox("Anchovies");
pepperoni = new JCheckBox("Pepperoni");
spinach = new JCheckBox("Spinach");
sausage = new JCheckBox("Sausage");
mushroom = new JCheckBox("Mushroom");
small.addActionListener(new CheckBoxListener());
medium.addActionListener(new CheckBoxListener());
large.addActionListener(new CheckBoxListener());
bacon.addActionListener(new CheckBoxListener());
chicken.addActionListener(new CheckBoxListener());
pineapple.addActionListener(new CheckBoxListener());
anchovies.addActionListener(new CheckBoxListener());
pepperoni.addActionListener(new CheckBoxListener());
spinach.addActionListener(new CheckBoxListener());
sausage.addActionListener(new CheckBoxListener());
mushroom.addActionListener(new CheckBoxListener());
panel1 = new JPanel();
panel1.setLayout(new BorderLayout(6, 3));
panel1.add(message1);
panel1.add(small);
panel1.add(medium);
panel1.add(large);
panel1.add(message2);
panel1.add(bacon);
panel1.add(chicken);
panel1.add(pineapple);
panel1.add(anchovies);
panel1.add(pepperoni);
panel1.add(spinach);
panel1.add(sausage);
panel1.add(mushroom);
frame.add(panel1);
}
public void buildPanel2() {
calculate = new JButton("Calculate Pizza Cost");
calculate.addActionListener(new CheckBoxListener());
results = new JTextField();
results.setEditable(false);
panel2 = new JPanel();
panel2.setLayout(new BorderLayout(1, 2));
panel2.add(calculate);
panel2.add(results);
frame.add(panel2);
}
private class CheckBoxListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
double size1 = 8.0;
double size2 = 9.5;
double size3 = 11.0;
double topping = 1.5;
double result = 0;
if (small.isSelected() && bacon.isSelected())
result = size1 + topping;
else if (small.isSelected() && chicken.isSelected())
result = size1 + topping;
else if (small.isSelected() && pineapple.isSelected())
result = size1 + topping;
else if (small.isSelected() && anchovies.isSelected())
result = size1 + topping;
else if (small.isSelected() && sausage.isSelected())
result = size1 + topping;
else if (small.isSelected() && pepperoni.isSelected())
result = size1 + topping;
else if (small.isSelected() && spinach.isSelected())
result = size1 + topping;
else if (small.isSelected() && mushroom.isSelected())
result = size1 + topping;
else if (medium.isSelected() && bacon.isSelected())
result = size2 + topping;
else if (medium.isSelected() && chicken.isSelected())
result = size2 + topping;
else if (medium.isSelected() && pineapple.isSelected())
result = size2 + topping;
else if (medium.isSelected() && anchovies.isSelected())
result = size2 + topping;
else if (medium.isSelected() && sausage.isSelected())
result = size2 + topping;
else if (medium.isSelected() && pepperoni.isSelected())
result = size2 + topping;
else if (medium.isSelected() && spinach.isSelected())
result = size2 + topping;
else if (medium.isSelected() && mushroom.isSelected())
result = size2 + topping;
else if (large.isSelected() && bacon.isSelected())
result = size3 + topping;
else if (large.isSelected() && chicken.isSelected())
result = size3 + topping;
else if (large.isSelected() && pineapple.isSelected())
result = size3 * topping;
else if (large.isSelected() && anchovies.isSelected())
result = size3 + topping;
else if (large.isSelected() && sausage.isSelected())
result = size3 + topping;
else if (large.isSelected() && pepperoni.isSelected())
result = size3 + topping;
else if (large.isSelected() && spinach.isSelected())
result = size3 + topping;
else if (large.isSelected() && mushroom.isSelected())
result = size3 + topping;
results.setText(String.format("$%,.2f", result));
}
}
public static void main(String[] args) {
Assignment18 pizza = new Assignment18();
}
}
谢谢!