JAVA help I am trying to create an application that allows t
JAVA help!
I am trying to create an application that allows the user to select one deck, one truck assembly, and one wheel from either list components or combo boxes. The application should have a list component that allows the user to select multiple miscellaneous products. The application should display the subtotal, the amount of sales tax (at 6 percent), and the total of the order. Here\'s what it needs to have:
 
 PROBLEM STATEMENT
 Decks Truck Assemblies Wheels
 The Master Thrasher $60 7.75 inch axle $35 51mm $20
 The Dictator $45 8 inch axle $40 55mm $22
 The Street King $50 8.5 inch axle $45 58mm $24
 61mm $28
 In addition, the Skate Shop sells the following miscellaneous products and services:
 Grip tape: $10
 Bearings: $30
 Riser pads: $2
 Nuts and bolts kit: $3
How come my program runs, and the values it puts out is 0.0 always?
WHEELSPANEL
import javax.swing.*;
 import javax.swing.event.*;
 import java.awt.*;
 @SuppressWarnings(\"unchecked\")
/**
    The WheelsPanel class allows the user to select different wheels.
 */
public class WheelsPanel extends JPanel implements ListSelectionListener
 {
   private JPanel wheelsPanel;
    private JList wheelsList;
    public int selectedWheels;
 String selection;
private String[] wheels = {\"51mm\" , \"55mm\", \"58mm\", \"61mm\"};
   /**
        Constructor
    */
   public WheelsPanel()
    {
        // Create a GridLayout manager with
        // four rows and one column.
    setBorder(BorderFactory.createTitledBorder(\"Wheels\"));
wheelsList = new JList(wheels);
 add(wheelsList);
wheelsList.setVisibleRowCount(2);
 wheelsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  wheelsList.addListSelectionListener(this);
    // Create a GridLayout manager with
// Three rows and one column
setLayout(new GridLayout(2, 1));
}
public void valueChanged(ListSelectionEvent e)
 {
 if (!e.getValueIsAdjusting())
        {
 selection = (String) wheelsList.getSelectedValue();
 if (selection == \"51mm\")
                {
 selectedWheels = 20;
 }
 if (selection == \"55mm\")
                {
 selectedWheels = 22;
 }
 if (selection == \"58mm\")
                {
 selectedWheels = 24;
 }
                if (selection == \"61mm\")
                {
                    selectedWheels = 28;
                }
 }
 }
 }
MISCELLANEOUS PANEL
import javax.swing.*;
 import javax.swing.event.*;
 import java.awt.*;
 @SuppressWarnings(\"unchecked\")
/**
    The MiscellaneousPanel class allows the user to select miscellaneous items.
 */
public class MiscellaneousPanel extends JPanel implements ListSelectionListener
 {
    private JPanel miscellaneousPanel;
    private JList miscellaneousList;
    public int selectedMiscellaneous;
 String selection;
private String[] miscellaneous = {\"Grip Tape\" , \"Bearings\", \"Riser Pads\", \"Nuts & Bolts kit\"};
   /**
        Constructor
    */
   public MiscellaneousPanel()
    {
        setBorder(BorderFactory.createTitledBorder(\"Miscellaneous\"));
miscellaneousList = new JList(miscellaneous);
 add(miscellaneousList);
miscellaneousList.setVisibleRowCount(2);
 miscellaneousList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
  miscellaneousList.addListSelectionListener(this);
    // Create a GridLayout manager with
// Three rows and one column
setLayout(new GridLayout(2, 1));
}
public void valueChanged(ListSelectionEvent e)
 {
 if (!e.getValueIsAdjusting())
        {
 selection = (String) miscellaneousList.getSelectedValue();
 if (selection == \"Grip Tape\")
                {
 selectedMiscellaneous = 10;
 }
 if (selection == \"Bearings\")
                {
 selectedMiscellaneous = 30;
 }
 if (selection == \"Riser Pads\")
                {
 selectedMiscellaneous = 2;
 }
                if (selection == \"Nuts & Bolts kit\")
                {
                    selectedMiscellaneous = 3;
                }
 }
 }
 }
DECK PANEL
import javax.swing.*;
 import javax.swing.event.*;
 import java.awt.*;
 @SuppressWarnings(\"unchecked\")
/**
 The DeckPanel class allows the user to select either Master trasher, dictator, or street king.
 */
public class DeckPanel extends JPanel implements ListSelectionListener
 {
 // The following constants are used to indicate
 // The different kind of decks
private JPanel deckPanel;
 private JList deckList;
 public int selectedDeck;
 String selection;
 String[] decks = {\"The Master Trasher\" , \"The Dictator\", \"The Street King\"};
/**
 Constructor
 */
public DeckPanel()
 {
 // Add a border around the panel.
 setBorder(BorderFactory.createTitledBorder(\"Decks\"));
deckList = new JList(decks);
 add(deckList);
 JScrollPane scrollbar = new JScrollPane(deckList);
 scrollbar.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
  scrollbar.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
  add(scrollbar);
 deckList.setVisibleRowCount(2);
 deckList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  deckList.addListSelectionListener(this);
// Create a GridLayout manager with
 // Two rows and one column
 setLayout(new GridLayout(3, 1));
 }
public void valueChanged(ListSelectionEvent e)
 {
 if (!e.getValueIsAdjusting())
        {
 selection = (String) deckList.getSelectedValue();
 if (selection == \"The Master Trasher\")
                {
 selectedDeck = 60;
 }
 if (selection == \"The Dictator\")
                {
 selectedDeck = 45;
 }
 if (selection == \"The Street King\")
                {
 selectedDeck = 50;
 }
 }
 }
 }
ASSEMBLIES PANEL
import javax.swing.*;
 import javax.swing.event.*;
 import java.awt.*;
 @SuppressWarnings(\"unchecked\")
/**
    The AssembliesPanel class allows the user to select
    the axles for the skateboard
 */
public class AssembliesPanel extends JPanel implements ListSelectionListener
 {
    private JPanel assembliesPanel;
    private JList assembliesList;
    public int selectedAssemblies;
 String selection;
private String[] assemblies = {\"7.75 inch Axle\" , \"8 inch Axle\", \"8.5 inch Axle\"};
   /**
        Constructor
    */
   public AssembliesPanel()
    {
    // Add a border around the panel.
    setBorder(BorderFactory.createTitledBorder(\"Assemblies\"));
assembliesList = new JList(assemblies);
 add(assembliesList);
assembliesList.setVisibleRowCount(3);
 assembliesList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  assembliesList.addListSelectionListener(this);
// Create a GridLayout manager with
// Three rows and one column
setLayout(new GridLayout(3, 1));
 }
   public void valueChanged(ListSelectionEvent e)
 {
 if (!e.getValueIsAdjusting())
        {
 selection = (String) assembliesList.getSelectedValue();
 if (selection == \"7.75 inch Axle\")
                {
 selectedAssemblies = 35;
 }
 if (selection == \"8 inch Axle\")
                {
 selectedAssemblies = 40;
 }
 if (selection == \"8.5 inch Axle\")
                {
 selectedAssemblies = 45;
 }
 }
 }
 }
ORDERCALUCULATORGUI
import javax.swing.*;
 import java.awt.*;
 import java.awt.event.*;
 import java.text.DecimalFormat;
public class OrderCalculatorGUI extends JFrame
 {
 public double selectedWheels = 0.0;
 public double selectedDeck = 0.0;
 public double selectedAssemblies = 0.0;
 public double selectedMiscellaneous = 0.0;
    private final int WINDOW_WIDTH = 400;               // window width
    private final int WINDOW_HEIGHT = 200;               // window height
    private DeckPanel decks;                               // Deck panel
    private AssembliesPanel assemblies;                   // Assemblies panel
    private WheelsPanel wheels;                           // Wheels panel
    private MiscellaneousPanel miscellaneous;           // To display a greeting
    private JPanel buttonPanel = new JPanel();       // To hold the buttons
    private JButton calcButton;                           // To calculate the cost
    private JButton exitButton;                           // To exit the application
    private final double TAX_RATE = 0.06;               // Sales tax rate
   public OrderCalculatorGUI()
    {
        // Display a title.
        setTitle(\"Skateboard Designer\");
       // Specify an action for the close button.
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       // set size of the window
        setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
       // add gridlayout manager.
        setLayout(new GridLayout(3, 4));
       // Create the custom panels.
        miscellaneous = new MiscellaneousPanel();
        decks = new DeckPanel();
        assemblies = new AssembliesPanel();
        wheels = new WheelsPanel();
       // Create the button panel.
        /**
        buildDeckPanel();
        */
        buildButtonPanel();
       // Add the components to the content pane.
        add(decks);
        add(assemblies);
        add(wheels);
        add(miscellaneous);
        add(buttonPanel);
       // Pack the contents of the window and display it.
        pack();
        setVisible(true);
    }
/**
    The buildButtonPanel method builds the button panel.
 */
private void buildButtonPanel()
 {
    // Create a panel for the buttons
    calcButton = new JButton(\"Calculate\");
    exitButton = new JButton(\"Exit\");
   // Register the action listeners.
    calcButton.addActionListener(new CalcButtonListener());
    exitButton.addActionListener(new ExitButtonListener());
    // Add the buttons to the button panel.
    buttonPanel.add(calcButton);
    buttonPanel.add(exitButton);
 }
/**
    Private inner class that handles the event when
    the user clicks the Calculate button.
 */
private class CalcButtonListener implements ActionListener
 {
    public void actionPerformed(ActionEvent e)
    {
        // Variables to hold the subtotal, tax, and total.
        double subtotal, tax, total;
       // Calculate the subtotal.
        subtotal = sum[selectedDeck + selectedAssemblies +selectedWheels + selectedMiscellaneous];
       // Calculate the sales tax.
        tax = subtotal * TAX_RATE;
        System.out.print(tax);
        // Calculate the total
        total = subtotal + tax;
        System.out.print(total);
        // Create a DecimalFormat object to format output.
        DecimalFormat dollar = new DecimalFormat(\"0.00\");
       // Display the charges.
        JOptionPane.showMessageDialog(null, \"Subtotal: $\" +
                dollar.format(subtotal) + \"\ \" +
                \"Tax: $\" + dollar.format(tax) + \"\ \" +
                \"Total: $\" + dollar.format(total));
                System.out.print(\"I am here\");
        }
    }
   /**
        Private inner class that handles the event when
        the user clicks the Exit button.
    */
   private class ExitButtonListener implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            System.exit(0);
        }
    }
 }
SKATEBOARD APP
/**
    This program creates an instance of the OrderCalculatorGUI class
    which displays the GUI for the Skateboard Designer application.
 */
public class SkateboardApp
 {
    public static void main(String[] args)
    {
        new OrderCalculatorGUI();
    }
 }
Solution
This is here where i think you have committed mistake and please do let me know if any errors occurs in the followeing
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
The DeckPanel class allows the user to select either Master trasher, dictator, or street king.
public class DeckPanel extends JPanel implements ListSelectionListener
{
private JPanel deckPanel;
private JList deckList;
String[] decks = {\"The Master Trasher\" , \"The Dictator\", \"The Street King\"};
public DeckPanel()
{
setBorder(BorderFactory.createTitledBorder(\"Decks\"));
deckList = new JList(decks);
add(deckList);
JScrollPane scrollbar = new JScrollPane(deckList);
scrollbar.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scrollbar.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
add(scrollbar);
deckList.setVisibleRowCount(2);
deckList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
deckList.addListSelectionListener(this);
setLayout(new GridLayout(3, 1));
}
public void valueChanged(ListSelectionEvent e)
{
if (!e.getValueIsAdjusting())
{
String selection = (String) deckList.getSelectedValue();
System.out.println(selection);
}
}
}








