| | |
Passing Array element to a list
Please support our Java advertiser: Programming Forums - DaniWeb Sister Site
![]() |
•
•
Join Date: Sep 2008
Posts: 38
Reputation:
Solved Threads: 0
I have a GUI app which in which I need to pass a value from an array to a List... here is what I have... The problem occurs when I try to pass the array element to the ActionListener...
im not sure exactly how to do it...
im not sure exactly how to do it...
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.event.*;
import javax.swing.*;
public class SkateBoard extends JFrame
{
private JPanel deckPanel;
private JPanel selectedDeckPanel;
private JList deckList;
private JTextField selectedDeck;
private JLabel deckLabel;
private JPanel truckPanel;
private JPanel selectedTruckPanel;
private JList truckList;
private JTextField selectedTruck;
private JLabel truckLabel;
private JPanel wheelPanel;
private JPanel selectedWheelPanel;
private JList wheelList;
private JTextField selectedWheel;
private JLabel wheelLabel;
private JPanel extraPanel;
private JPanel selectedExtraPanel;
private JList extraList;
private JTextField selectedExtra;
private JLabel extraLabel;
public double deckPrice;
public double truckPrice;
public double wheelPrice;
public double extraPrice;
private JButton button;
private JPanel buttonPanel;
private JTextField total;
public String[] decks = {"The Master Thrasher", "The Dictator", "The Street King"};
public String[] trucks = { "7.75 inch axle", "8-inch axle", "8.5 inch axle"};
public String[] wheels = { "51 mm", "55 mm", "58 mm", "61 mm"};
public String[] extras = { "Grip Tape", "Bearings", "Riser Pads", "Nuts and Bolts Kit"};
private JLabel totalLabel;
private JButton calcButton;
public double totalPrice = deckPrice + truckPrice + wheelPrice + extraPrice;
public SkateBoard()
{
super("Build Your Custom SkateBoard");
setSize(200,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridLayout(3,4));
buildDeckPanel();
buildTruckPanel();
buildWheelPanel();
buildExtraPanel();
buildSelectedDeckPanel();
buildSelectedTruckPanel();
buildSelectedWheelPanel();
buildSelectedExtraPanel();
buildButtonPanel();
add(deckPanel);
add(truckPanel);
add(wheelPanel);
add(extraPanel);
add(selectedDeckPanel);
add(selectedTruckPanel);
add(selectedWheelPanel);
add(selectedExtraPanel);
add(buttonPanel);
pack();
setVisible(true);
}
public double getTotal()
{
double totalPrice;
totalPrice = deckPrice + truckPrice + wheelPrice + extraPrice;
return totalPrice;
}
private void buildDeckPanel()
{
deckPanel = new JPanel();
deckList = new JList(decks);
deckList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
deckList.addListSelectionListener(new DeckListener());
deckPanel.add(deckList);
}
private void buildTruckPanel()
{
truckPanel = new JPanel();
truckList = new JList(trucks);
truckList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
truckList.addListSelectionListener(new TruckListener());
truckPanel.add(truckList);
}
private void buildWheelPanel()
{
wheelPanel = new JPanel();
wheelList = new JList(wheels);
.
wheelList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
// Register the list selection listener.
wheelList.addListSelectionListener(new WheelListener());
// Add the list to the panel.
wheelPanel.add(wheelList);
}
private void buildExtraPanel()
{
// Create a panel to hold the list.
extraPanel = new JPanel();
// Create the list.
extraList = new JList(extras);
// Set the selection mode to single selection.
extraList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
// Register the list selection listener.
extraList.addListSelectionListener(new ExtraListener());
// Add the list to the panel.
extraPanel.add(extraList);
}
private void buildSelectedDeckPanel()
{
// Create a panel to hold the text field.
selectedDeckPanel = new JPanel();
// Create the label.
deckLabel = new JLabel("Deck: ");
// Create the text field.
selectedDeck = new JTextField(12);
// Make the text field uneditable.
selectedDeck.setEditable(false);
// Add the label and text field to the panel.
selectedDeckPanel.add(deckLabel);
selectedDeckPanel.add(selectedDeck);
}
private void buildSelectedTruckPanel()
{
// Create a panel to hold the text field.
selectedTruckPanel = new JPanel();
// Create the label.
truckLabel = new JLabel("Truck: ");
// Create the text field.
selectedTruck = new JTextField(10);
// Make the text field uneditable.
selectedTruck.setEditable(false);
// Add the label and text field to the panel.
selectedTruckPanel.add(truckLabel);
selectedTruckPanel.add(selectedTruck);
}
private void buildSelectedWheelPanel()
{
// Create a panel to hold the text field.
selectedWheelPanel = new JPanel();
// Create the label.
wheelLabel = new JLabel("Wheel: ");
// Create the text field.
selectedWheel = new JTextField(5);
// Make the text field uneditable.
selectedWheel.setEditable(false);
// Add the label and text field to the panel.
selectedWheelPanel.add(wheelLabel);
selectedWheelPanel.add(selectedWheel);
}
private void buildSelectedExtraPanel()
{
// Create a panel to hold the text field.
selectedExtraPanel = new JPanel();
// Create the label.
extraLabel = new JLabel("Extras: ");
// Create the text field.
selectedExtra = new JTextField(15);
// Make the text field uneditable.
selectedExtra.setEditable(false);
// Add the label and text field to the panel.
selectedExtraPanel.add(extraLabel);
selectedExtraPanel.add(selectedExtra);
}
private void buildButtonPanel()
{
buttonPanel = new JPanel();
calcButton = new JButton("Calculate");
calcButton.addActionListener(new CalcButtonListener());
buttonPanel.add(calcButton);
}
public class CalcButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(null, "Subtotal: $" +
totalPrice);
}
}
public class DeckListener implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent e)
{
// Get the selected string from the list.
String selection = (String) deckList.getSelectedValue();
if (selection == decks[0])
deckPrice = 60;
if (selection == decks[1])
deckPrice = 45;
if (selection == decks[2])
deckPrice = 50;
selectedDeck.setText(selection);
}
}
public class TruckListener implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent e)
{
// Get the selected string from the list.
String selection = (String) truckList.getSelectedValue();
if (selection == trucks[0])
truckPrice = 35;
if (selection == trucks[1])
truckPrice = 40;
if (selection == trucks[2])
truckPrice = 45;
// Store the selected string in the text field.
selectedTruck.setText(selection);
}
}
public class WheelListener implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent e)
{
// Get the selected string from the list.
String selection = (String) wheelList.getSelectedValue();
if (wheels[0].isSelected)
wheelPrice = 60;
if (selection == wheels[1])
wheelPrice = 45;
if (selection == wheels[2])
wheelPrice = 50;
// Store the selected string in the text field.
selectedWheel.setText(selection);
}
}
public class ExtraListener implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent e)
{
// Get the selected string from the list.
String selection = (String) extraList.getSelectedValue();
if (selection == extras[0])
extraPrice = 60;
if (selection == extras[1])
extraPrice = 45;
if (selection == extras[2])
extraPrice = 50;
// Store the selected string in the text field.
selectedExtra.setText(selection);
}
}
public static void main(String[] args)
{
new SkateBoard();
}
}•
•
Join Date: Nov 2008
Posts: 1
Reputation:
Solved Threads: 0
You don't need the getTotal section. I deleted it and rewrote the Calculate action like this and it returned the Total, Subtotal and Tax amounts...
public class CalcButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
double subtotal; // The order subtotal
double tax; // The amount of sales tax
double total; // The order total
// Calculate the subtotal.
subtotal = deckPrice + truckPrice + wheelPrice + extraPrice;
// Calculate the sales tax.
tax = subtotal * TAX_RATE;
// Calculate the total.
total = subtotal + tax;
// Create a DecimalFormat object to format
// the total as a dollar amount.
DecimalFormat dollar = new DecimalFormat("0.00");
// Display the charges.
JOptionPane.showMessageDialog(null, "Subtotal: $" +
dollar.format(subtotal) + "\n" +
"Tax: $" + dollar.format(tax) + "\n" +
"Total: $" + dollar.format(total));
}
}
Also, you need to fix your wheel listener like so:
public class WheelListener implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent e)
{
// Get the selected string from the list.
String selection = (String) wheelList.getSelectedValue();
if ( selection == wheels[0])
wheelPrice = 60;
if (selection == wheels[1])
wheelPrice = 45;
if (selection == wheels[2])
wheelPrice = 50;
// Store the selected string in the text field.
selectedWheel.setText(selection);
}
}
Also, you might want to remove the period from this section in the BuildWheelsPanel:
wheelList = new JList(wheels);
.
wheelList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
That should do it for you.
public class CalcButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
double subtotal; // The order subtotal
double tax; // The amount of sales tax
double total; // The order total
// Calculate the subtotal.
subtotal = deckPrice + truckPrice + wheelPrice + extraPrice;
// Calculate the sales tax.
tax = subtotal * TAX_RATE;
// Calculate the total.
total = subtotal + tax;
// Create a DecimalFormat object to format
// the total as a dollar amount.
DecimalFormat dollar = new DecimalFormat("0.00");
// Display the charges.
JOptionPane.showMessageDialog(null, "Subtotal: $" +
dollar.format(subtotal) + "\n" +
"Tax: $" + dollar.format(tax) + "\n" +
"Total: $" + dollar.format(total));
}
}
Also, you need to fix your wheel listener like so:
public class WheelListener implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent e)
{
// Get the selected string from the list.
String selection = (String) wheelList.getSelectedValue();
if ( selection == wheels[0])
wheelPrice = 60;
if (selection == wheels[1])
wheelPrice = 45;
if (selection == wheels[2])
wheelPrice = 50;
// Store the selected string in the text field.
selectedWheel.setText(selection);
}
}
Also, you might want to remove the period from this section in the BuildWheelsPanel:
wheelList = new JList(wheels);
.
wheelList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
That should do it for you.
![]() |
Similar Threads
- Passing Multidimensional Arrays To Functions (C++)
- memory management in wndows 2000 (Windows NT / 2000 / XP)
- urgent help with c++ function access(/cpp) (C++)
- sort multi-dimension data by one coulmn (Python)
- Function templates and argument passing (C++)
- passing arrary threw query (Visual Basic 4 / 5 / 6)
- Insertion Sort and Number Occurence (C++)
- Passing struct to procuedre (C)
- Sorting in date order (Visual Basic 4 / 5 / 6)
- Problem Passing a Class Object to a Queue (C++)
Other Threads in the Java Forum
- Previous Thread: Time Calculator
- Next Thread: Execute an sql script with routines in jdbc..?
| Thread Tools | Search this Thread |
actuate android api applet application applications array arrays automation balls bank binary bluetooth business chat class classes clear client code codesnippet collections component coordinates database defaultmethod development dice dragging ebook eclipse educational error formatingtextintooltipjava fractal game givemetehcodez graphics gui hql html ide image infinite ingres input integer internet invokingapacheantprogrammatically j2me java javaprojects jni jpanel jtextarea julia linux list loop looping map method methods mobile mysql netbeans newbie openjavafx parameter php print problem program programming project recursion repositories scanner screen scrollbar server set size sms sort sorting sql sqlserver state storm string sun superclass swing swt text-file threads tree websites windows





