GUI程序只显示一个复选框

时间:2016-12-09 18:16:46

标签: java eclipse user-interface checkbox jframe

我正在为一所学校项目工作,它与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();
}
}

谢谢!

0 个答案:

没有答案