import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; impo
ID: 3625776 • Letter: I
Question
import javax.swing.*;import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class JoesAutomotive extends JPanel
{
private static final long serialVersionUID = 1L;
public final double Oil_change1 = 26.00;
public final double Lube_job1 = 18.00;
public final double Radiator_flush1 = 30.00;
public final double Transmission_flush1 = 80.00;
public final double Inspection1 = 15.00;
public final double Muffler_replacement1 = 100.00;
public final double Tire_rotation1 = 20.00;
private JCheckBox Oil_change;
private JCheckBox Lube_job;
private JCheckBox Radiator_flush;
private JCheckBox Transmission_flush;
private JCheckBox Inspection;
private JCheckBox Muffler_replacement;
private JCheckBox Tire_rotation;
private JButton calculate; // added this new button
private JTextField calcTextField; // added this text field for the calcTextField
public JoesAutomotive()
{
setLayout(new GridLayout(4, 0));
Oil_change = new JCheckBox("Oil change");
Lube_job = new JCheckBox("Lube job");
Radiator_flush = new JCheckBox("Radiator flush");
Transmission_flush = new JCheckBox("Transmission flush");
Inspection = new JCheckBox("Inspection");
Muffler_replacement = new JCheckBox("Muffler_replacement");
Tire_rotation = new JCheckBox("Tire_rotation");
setBorder(BorderFactory.createTitledBorder("Toppings"));
add(Oil_change);
add(Lube_job);
add(Radiator_flush);
add(Transmission_flush);
add(Inspection);
add(Muffler_replacement);
add(Tire_rotation);
calculate = new JButton("Calculate!");
calculate.addActionListener(new ButtonListener());
calcTextField = new JTextField("");
calcTextField.setEditable(false); // so that user cannot edit final data
add(calculate);
add(calcTextField);
}
private class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == calculate)
{
actionCalculate();
}
}
}
private void actionCalculate()
{
double total = 0;
if(Oil_change.isSelected())
total = total + Oil_change1;
if(Lube_job.isSelected())
total = total + Radiator_flush1;
if(Transmission_flush.isSelected())
total = total + Transmission_flush1;
if(Inspection.isSelected())
total = total + Inspection1;
if(Muffler_replacement.isSelected())
total = total + Muffler_replacement1;
if(Tire_rotation.isSelected())
total = total + Tire_rotation1;
// converts double to a string and tacks on the dollar sign
String sum = "$"+Double.toString(total);
calcTextField.setText(sum);
}
public double getMaintenanceCost()
{
double MaintenanceCost = 0.0;
if (Oil_change.isSelected())
{
MaintenanceCost += Oil_change1;
}
if (Lube_job.isSelected())
{
MaintenanceCost += Lube_job1;
}
if (Radiator_flush.isSelected())
{
MaintenanceCost += Radiator_flush1;
}
if (Transmission_flush.isSelected())
{
MaintenanceCost += Transmission_flush1;
}
if (Inspection.isSelected())
{
MaintenanceCost += Inspection1;
}
if (Inspection.isSelected())
{
MaintenanceCost += Muffler_replacement1;
}
if (Inspection.isSelected())
{
MaintenanceCost += Tire_rotation1;
}
return MaintenanceCost;
}
public static void main(String args[])
{
JFrame jf = new JFrame();
JoesAutomotive ja = new JoesAutomotive();
jf.add(ja);
jf.setSize(300, 300);
}
}
Explanation / Answer
That was an easy fix... You forgot to set the frame visible. I also added two other set operations in your main. I set the location to middle of screen and set close operation to exit when panel is closed. Remember to set your frame as visible, i.e. jf.setVisible(true); CODE: import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class JoesAutomotive extends JPanel { private static final long serialVersionUID = 1L; public final double Oil_change1 = 26.00; public final double Lube_job1 = 18.00; public final double Radiator_flush1 = 30.00; public final double Transmission_flush1 = 80.00; public final double Inspection1 = 15.00; public final double Muffler_replacement1 = 100.00; public final double Tire_rotation1 = 20.00; private JCheckBox Oil_change; private JCheckBox Lube_job; private JCheckBox Radiator_flush; private JCheckBox Transmission_flush; private JCheckBox Inspection; private JCheckBox Muffler_replacement; private JCheckBox Tire_rotation; private JButton calculate; // added this new button private JTextField calcTextField; // added this text field for the calcTextField public JoesAutomotive() { setLayout(new GridLayout(4, 0)); Oil_change = new JCheckBox("Oil change"); Lube_job = new JCheckBox("Lube job"); Radiator_flush = new JCheckBox("Radiator flush"); Transmission_flush = new JCheckBox("Transmission flush"); Inspection = new JCheckBox("Inspection"); Muffler_replacement = new JCheckBox("Muffler_replacement"); Tire_rotation = new JCheckBox("Tire_rotation"); setBorder(BorderFactory.createTitledBorder("Toppings")); add(Oil_change); add(Lube_job); add(Radiator_flush); add(Transmission_flush); add(Inspection); add(Muffler_replacement); add(Tire_rotation); calculate = new JButton("Calculate!"); calculate.addActionListener(new ButtonListener()); calcTextField = new JTextField(""); calcTextField.setEditable(false); // so that user cannot edit final data add(calculate); add(calcTextField); } private class ButtonListener implements ActionListener { public void actionPerformed(ActionEvent e) { if (e.getSource() == calculate) { actionCalculate(); } } } private void actionCalculate() { double total = 0; if (Oil_change.isSelected()) { total = total + Oil_change1; } if (Lube_job.isSelected()) { total = total + Radiator_flush1; } if (Transmission_flush.isSelected()) { total = total + Transmission_flush1; } if (Inspection.isSelected()) { total = total + Inspection1; } if (Muffler_replacement.isSelected()) { total = total + Muffler_replacement1; } if (Tire_rotation.isSelected()) { total = total + Tire_rotation1; } // converts double to a string and tacks on the dollar sign String sum = "$" + Double.toString(total); calcTextField.setText(sum); } public double getMaintenanceCost() { double MaintenanceCost = 0.0; if (Oil_change.isSelected()) { MaintenanceCost += Oil_change1; } if (Lube_job.isSelected()) { MaintenanceCost += Lube_job1; } if (Radiator_flush.isSelected()) { MaintenanceCost += Radiator_flush1; } if (Transmission_flush.isSelected()) { MaintenanceCost += Transmission_flush1; } if (Inspection.isSelected()) { MaintenanceCost += Inspection1; } if (Inspection.isSelected()) { MaintenanceCost += Muffler_replacement1; } if (Inspection.isSelected()) { MaintenanceCost += Tire_rotation1; } return MaintenanceCost; } public static void main(String args[]) { JFrame jf = new JFrame(); JoesAutomotive ja = new JoesAutomotive(); jf.add(ja); jf.setSize(300, 300); jf.setVisible(true); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setLocationRelativeTo(null); } }
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.