vendredi 9 décembre 2016

GUI Program appears with only one checkbox

I'm working on a project for school and it has to do with GUI. I'm supposed to make a program that allows for people to choose from three sizes and eight toppings for a pizza. They can choose as many toppings as they want, so I cant do any button groups.

However, I'm running into a recurring problem. As soon as I run the program, The only thing that appears on the screen is a checkbox for the "Mushroom" topping and a text field for the total price. When I check the checkbox, the field reads "$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;
        if (small.isSelected() && chicken.isSelected())
            result = size1 + topping;
        if (small.isSelected() && pineapple.isSelected())
            result = size1 + topping;
        if (small.isSelected() && anchovies.isSelected())
            result = size1 + topping;
        if (small.isSelected() && sausage.isSelected())
            result = size1 + topping;
        if (small.isSelected() && pepperoni.isSelected())
            result = size1 + topping;
        if (small.isSelected() && spinach.isSelected())
            result = size1 + topping;
        if (small.isSelected() && mushroom.isSelected())
            result = size1 + topping;
        if (medium.isSelected() && bacon.isSelected())
            result = size2 + topping;
        if (medium.isSelected() && chicken.isSelected())
            result = size2 + topping;
        if (medium.isSelected() && pineapple.isSelected())
            result = size2 + topping;
        if (medium.isSelected() && anchovies.isSelected())
            result = size2 + topping;
        if (medium.isSelected() && sausage.isSelected())
            result = size2 + topping;
        if (medium.isSelected() && pepperoni.isSelected())
            result = size2 + topping;
        if (medium.isSelected() && spinach.isSelected())
            result = size2 + topping;
        if (medium.isSelected() && mushroom.isSelected())
            result = size2 + topping;
        if (large.isSelected() && bacon.isSelected())
            result = size3 + topping;
        if (large.isSelected() && chicken.isSelected())
            result = size3 + topping;
        if (large.isSelected() && pineapple.isSelected())
            result = size3 * topping;
        if (large.isSelected() && anchovies.isSelected())
            result = size3 + topping;
        if (large.isSelected() && sausage.isSelected())
            result = size3 + topping;
        if (large.isSelected() && pepperoni.isSelected())
            result = size3 + topping;
        if (large.isSelected() && spinach.isSelected())
            result = size3 + topping;
        if (large.isSelected() && mushroom.isSelected())
            result = size3 + topping;
        results.setText(String.format("$%,.2f", result));
    }
}
public static void main(String[] args) {
    Assignment18 pizza = new Assignment18();
}
}

Thank you!




Aucun commentaire:

Enregistrer un commentaire