| | |
Inventory program part 5 help
Please support our Java advertiser: Programming Forums - DaniWeb Sister Site
![]() |
What Ezzaral is sugesting is create a variable which will hold value/position of currently selected item. On the start it will be zero as you wish to display first value from your array. When you press Next this value get increased by one. When you press Previous get decreased. Last it will change to length of your array minus one. If First selected the value will set to zero.
When this done you should thing what you want to happens when you reach last position of array. Do you want to start automaticaly from first array variable or you want to disable next move. Then apply same for first position in the array
When this done you should thing what you want to happens when you reach last position of array. Do you want to start automaticaly from first array variable or you want to disable next move. Then apply same for first position in the array
Learn to see in another's calamity the ills which you should avoid.
Publilius Syrus
(~100 BC)
LJC - London Java Community, Graduate & Undergraduate Software Development Community, JAVAWUG (Java Web User Group), The London Android Group
Publilius Syrus
(~100 BC)
LJC - London Java Community, Graduate & Undergraduate Software Development Community, JAVAWUG (Java Web User Group), The London Android Group
•
•
Join Date: Mar 2007
Posts: 25
Reputation:
Solved Threads: 0
i want to thank both of you for helping me.
ok, this is what I have done but the buttons still do not change the inventory to the next, previous, or the others.
ok, this is what I have done but the buttons still do not change the inventory to the next, previous, or the others.
Java Syntax (Toggle Plain Text)
import java.awt.*; import java.awt.event.*; import java.text.NumberFormat; // used to format currency import javax.swing.*; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JComboBox; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; class InventoryMain extends Frame implements ActionListener { CD[] product; JTextField[] fields; NumberFormat nf; JButton jbtOk, jbtFirst, jbtPrev, jbtNext, jbtLast; static int dispProd = 0; // variable for actionEvents // main method begins execution of java application static JTextArea textArea; public static void main(String[] args) { int i; // varialbe for looping double total = 0; // variable for total inventory try { UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); } catch (Exception e) { System.err.println(e.getClass().getName() + ": " + e.getMessage()); } InventoryMain test = new InventoryMain(); test.initCD(); test.showGUI(); test.populateFields(0); } public void actionPerformed(ActionEvent ae) { if(ae.getSource() == jbtOk) { // add OK button functionality System.out.println("OK pressed"); } if(ae.getSource() == jbtFirst) { // add First button functionality System.out.println("FIRST pressed"); } if(ae.getSource() == jbtPrev) { // add Previous button functionality System.out.println("PREVIOUS pressed"); } if(ae.getSource() == jbtNext) { // add Next button functionality System.out.println("NEXT pressed"); } if(ae.getSource() == jbtLast) { // add Last button functionality System.out.println("LAST pressed"); } } public void initCD() { //Create an array product = new CD[10]; //fill in the classes product[0] = new CD( 1, "Crowbar" , 20.00, 10, "00722"); product[1] = new CD( 2, "Pantera" , 20.00, 10, "00263"); product[2] = new CD( 3, "Ozzy" , 15.00, 10, "00142"); product[3] = new CD( 4, "Soulfly" , 18.00, 10, "00553"); product[4] = new CD( 5, "Down", 24.00, 10, "00789"); product[5] = new CD( 6, "God Forbid" , 10.00, 10, "00712"); product[6] = new CD( 7, "Black Label Society" , 16.00, 10, "00458" ); product[7] = new CD( 8, "Saint Vitus" , 15.00, 10, "00889"); product[8] = new CD( 9, "Clearlight" , 15.00, 10, "00897"); product[9] = new CD( 10, "Testament" , 15.00, 10, "00656"); //Sort elements in array in alphabetical order by product name // product[0].sortItems(product); }
Java Syntax (Toggle Plain Text)
private void showGUI() { JLabel l; JButton b; fields = new JTextField[9]; JComboBox combo = new JComboBox(); for(int j = 0; j < product.length; j++) combo.addItem(product[j].getName()); combo.addActionListener(this); JFrame f = new JFrame("InventoryGUI"); Container cp = f.getContentPane(); cp.setLayout(new GridBagLayout()); cp.setBackground(UIManager.getColor("control")); GridBagConstraints c = new GridBagConstraints(); c.gridx = 0; c.gridy = GridBagConstraints.RELATIVE; c.gridwidth = 1; c.gridheight = 1; c.insets = new Insets(2, 2, 2, 2); c.anchor = GridBagConstraints.EAST; cp.add(l = new JLabel("Item Number:", SwingConstants.CENTER), c); l.setDisplayedMnemonic('a'); cp.add(l = new JLabel("Item Name:", SwingConstants.CENTER), c); l.setDisplayedMnemonic('b'); cp.add(l = new JLabel("Number of Units in Stock:", SwingConstants.CENTER), c); l.setDisplayedMnemonic('c'); cp.add(l = new JLabel("Price per Unit: $", SwingConstants.CENTER), c); l.setDisplayedMnemonic('d'); cp.add(l = new JLabel("Total cost of This Item: $", SwingConstants.CENTER), c); l.setDisplayedMnemonic('e'); cp.add(l = new JLabel("Total Value of All Merchandise in Inventory: $", SwingConstants.CENTER), c); l.setDisplayedMnemonic('f'); cp.add(l = new JLabel("Item Code:", SwingConstants.CENTER), c); l.setDisplayedMnemonic('g'); cp.add(l = new JLabel("Product Restocking Fee: $", SwingConstants.CENTER), c); l.setDisplayedMnemonic('h'); cp.add(combo, c); c.gridx = 1; c.gridy = 0; c.weightx = 1.0; c.fill = GridBagConstraints.HORIZONTAL; c.anchor = GridBagConstraints.CENTER; cp.add(fields[0] = new JTextField(), c); fields[0].setFocusAccelerator('a'); c.gridx = 1; c.gridy = GridBagConstraints.RELATIVE; cp.add(fields[1] = new JTextField(), c); fields[1].setFocusAccelerator('b'); cp.add(fields[2] = new JTextField(), c); fields[2].setFocusAccelerator('c'); cp.add(fields[3] = new JTextField(), c); fields[3].setFocusAccelerator('d'); cp.add(fields[4] = new JTextField(), c); fields[4].setFocusAccelerator('e'); cp.add(fields[5] = new JTextField(), c); fields[5].setFocusAccelerator('f'); cp.add(fields[6] = new JTextField(), c); fields[6].setFocusAccelerator('g'); cp.add(fields[7] = new JTextField(), c); fields[7].setFocusAccelerator('h'); cp.add(fields[8] = new JTextField(), c); fields[8].setFocusAccelerator('i'); c.weightx = 0.0; c.fill = GridBagConstraints.NONE; jbtOk = new JButton("OK"); jbtOk.addActionListener(this); jbtFirst = new JButton("First"); jbtFirst.addActionListener(this); jbtPrev = new JButton("Previous"); jbtPrev.addActionListener(this); jbtNext = new JButton("Next"); jbtNext.addActionListener(this); jbtLast = new JButton("Last"); jbtLast.addActionListener(this); cp.add(jbtOk, c); cp.add(jbtFirst, c); cp.add(jbtPrev, c); cp.add(jbtNext, c); cp.add(jbtLast, c); f.pack(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); // assign actionListener and actionEvent for each button jbtFirst.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { dispProd = 0; } // end firstBtn actionEvent }); // end firstBtn actionListener jbtPrev.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { dispProd--; if (dispProd < 0) { dispProd = 0; } dispProd = (product.length+dispProd-1) % product.length; } // end prevBtn actionEvent }); // end prevBtn actionListener jbtLast.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { dispProd = product.length - 1; } // end lastBtn actionEvent }); // end lastBtn actionListener jbtNext.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { dispProd++; if (dispProd >= product.length) { dispProd = product.length - 1; } } // end nextBtn actionEvent }); // end nextBtn actionListener } private void populateFields(int index) { CD cd = product[index]; fields[0].setText(Long.toString(cd.getNumberCode())); fields[1].setText(cd.getName()); fields[2].setText(Long.toString(cd.getUnits())); fields[3].setText(Double.toString(cd.getPrice())); fields[4].setText(Double.toString(cd.getSum())); fields[5].setText(Double.toString(cd.totalAllInventory(product))); fields[6].setText(cd.getCode()); fields[7].setText(Double.toString(cd.getSum()*.05)); } }
It is still working, you just do not see output on command line don't you? Or you do not know where this is comming from? Why you not getting action from "your" ActionListeners?
Well answer is very simple. You have 2 ActionListeners. One is top level which I created
and then there are yours anonymous inner class listeners like this one
So all action events by buttons get catch by my event handle as it is top level instead of yours. Simply comment out content of my actionPerformed() method /* */, just content not whole or you get error for JComboBox to which you assign event but not handle anywhere and do not forget to call a method for updating content of the fields, the one in red
PS: You may complitely remove my event handler once you implement anonymous inner class event handler for that combo box.
Well answer is very simple. You have 2 ActionListeners. One is top level which I created
Java Syntax (Toggle Plain Text)
public void actionPerformed(ActionEvent ae) { if(ae.getSource() == jbtOk) { // add OK button functionality System.out.println("OK pressed"); } if(ae.getSource() == jbtFirst) { // add First button functionality System.out.println("FIRST pressed"); } if(ae.getSource() == jbtPrev) { // add Previous button functionality System.out.println("PREVIOUS pressed"); } if(ae.getSource() == jbtNext) { // add Next button functionality System.out.println("NEXT pressed"); } if(ae.getSource() == jbtLast) { // add Last button functionality System.out.println("LAST pressed"); } }
Java Syntax (Toggle Plain Text)
jbtFirst.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { dispProd = 0; } // end firstBtn actionEvent }); // end firstBtn actionListener
Java Syntax (Toggle Plain Text)
combo.addActionListener(this);
jbtNext.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
dispProd++;
if (dispProd >= product.length)
{
dispProd = product.length - 1;
}
populateFields(dispProd);
} // end nextBtn actionEvent
}); // end nextBtn actionListenerPS: You may complitely remove my event handler once you implement anonymous inner class event handler for that combo box.
Learn to see in another's calamity the ills which you should avoid.
Publilius Syrus
(~100 BC)
LJC - London Java Community, Graduate & Undergraduate Software Development Community, JAVAWUG (Java Web User Group), The London Android Group
Publilius Syrus
(~100 BC)
LJC - London Java Community, Graduate & Undergraduate Software Development Community, JAVAWUG (Java Web User Group), The London Android Group
Just delete event handle created by me, create event handler for JComboBox and call following method
to update your fields...
Java Syntax (Toggle Plain Text)
populateFields(dispProd);
Last edited by peter_budo; Sep 12th, 2007 at 7:26 am. Reason: speling mistake
Learn to see in another's calamity the ills which you should avoid.
Publilius Syrus
(~100 BC)
LJC - London Java Community, Graduate & Undergraduate Software Development Community, JAVAWUG (Java Web User Group), The London Android Group
Publilius Syrus
(~100 BC)
LJC - London Java Community, Graduate & Undergraduate Software Development Community, JAVAWUG (Java Web User Group), The London Android Group
•
•
Join Date: Mar 2007
Posts: 25
Reputation:
Solved Threads: 0
I did what you suggested and now I get these errors:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.JButton cannot be cast to javax.swing.JComboBox
at inventoryi.InventoryMain.actionPerformed(InventoryI.java:48)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
This is my code that I get errors
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.JButton cannot be cast to javax.swing.JComboBox
at inventoryi.InventoryMain.actionPerformed(InventoryI.java:48)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
This is my code that I get errors
Java Syntax (Toggle Plain Text)
import java.awt.*; import java.awt.event.*; import java.text.NumberFormat; // used to format currency import javax.swing.*; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JComboBox; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; class InventoryMain extends Frame implements ActionListener { CD[] product; JTextField[] fields; NumberFormat nf; JButton jbtOk, jbtFirst, jbtPrev, jbtNext, jbtLast; JLabel label; // logo JPanel buttonJPanel; // panel to hold buttons String nameText; private int index; int i; // varialbe for looping double total = 0; // variable for total inventory static int dispProd = 0; // variable for actionEvents static JTextArea textArea; public void actionPerformed(ActionEvent e) { int index = ((JComboBox)e.getSource()).getSelectedIndex(); populateFields(dispProd); } public static void main(String[] args) { try { UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); } catch (Exception e) { System.err.println(e.getClass().getName() + ": " + e.getMessage()); } InventoryMain test = new InventoryMain(); test.initCD(); test.showGUI(); test.populateFields(0); } public void initCD() { //Create an array product = new CD[10]; //fill in the classes product[0] = new CD( 1, "Crowbar" , 20.00, 10, "00722"); product[1] = new CD( 2, "Pantera" , 20.00, 10, "00263"); product[2] = new CD( 3, "Ozzy" , 15.00, 10, "00142"); product[3] = new CD( 4, "Soulfly" , 18.00, 10, "00553"); product[4] = new CD( 5, "Down", 24.00, 10, "00789"); product[5] = new CD( 6, "God Forbid" , 10.00, 10, "00712"); product[6] = new CD( 7, "Black Label Society" , 16.00, 10, "00458" ); product[7] = new CD( 8, "Saint Vitus" , 15.00, 10, "00889"); product[8] = new CD( 9, "Clearlight" , 15.00, 10, "00897"); product[9] = new CD( 10, "Testament" , 15.00, 10, "00656"); //Sort elements in array in alphabetical order by product name // product[0].sortItems(product); } private void showGUI() { JLabel l; JButton b; fields = new JTextField[9]; JComboBox combo = new JComboBox(); for(int j = 0; j < product.length; j++) combo.addItem(product[j].getName()); combo.addActionListener(this); Icon logo = new ImageIcon("C:/logo.jpg"); // load logo label = new JLabel(logo); // create logo label label.setToolTipText("Company Logo"); // create tooltip textArea = new JTextArea(product[3] + "\n"); // create textArea for // product display JFrame f = new JFrame("CD Inventory"); Container cp = f.getContentPane(); cp.setLayout(new GridBagLayout()); cp.setBackground(UIManager.getColor("control")); GridBagConstraints c = new GridBagConstraints(); c.gridx = 0; c.gridy = GridBagConstraints.RELATIVE; c.gridwidth = 1; c.gridheight = 1; c.insets = new Insets(2, 2, 2, 2); c.anchor = GridBagConstraints.EAST; cp.add(l = new JLabel("Item Number:", SwingConstants.CENTER), c); l.setDisplayedMnemonic('a'); cp.add(l = new JLabel("Item Name:", SwingConstants.CENTER), c); l.setDisplayedMnemonic('b'); cp.add(l = new JLabel("Number of Units in Stock:", SwingConstants.CENTER), c); l.setDisplayedMnemonic('c'); cp.add(l = new JLabel("Price per Unit: $", SwingConstants.CENTER), c); l.setDisplayedMnemonic('d'); cp.add(l = new JLabel("Total cost of This Item: $", SwingConstants.CENTER), c); l.setDisplayedMnemonic('e'); cp.add(l = new JLabel("Total Value of All Merchandise in Inventory: $", SwingConstants.CENTER), c); l.setDisplayedMnemonic('f'); cp.add(l = new JLabel("Item Code:", SwingConstants.CENTER), c); l.setDisplayedMnemonic('g'); cp.add(l = new JLabel("Product Restocking Fee: $", SwingConstants.CENTER), c); l.setDisplayedMnemonic('h'); cp.add(combo, c); c.gridx = 1; c.gridy = 0; c.weightx = 1.0; c.fill = GridBagConstraints.HORIZONTAL; c.anchor = GridBagConstraints.CENTER; cp.add(fields[0] = new JTextField(), c); fields[0].setFocusAccelerator('a'); c.gridx = 1; c.gridy = GridBagConstraints.RELATIVE; cp.add(fields[1] = new JTextField(), c); fields[1].setFocusAccelerator('b'); cp.add(fields[2] = new JTextField(), c); fields[2].setFocusAccelerator('c'); cp.add(fields[3] = new JTextField(), c); fields[3].setFocusAccelerator('d'); cp.add(fields[4] = new JTextField(), c); fields[4].setFocusAccelerator('e'); cp.add(fields[5] = new JTextField(), c); fields[5].setFocusAccelerator('f'); cp.add(fields[6] = new JTextField(), c); fields[6].setFocusAccelerator('g'); cp.add(fields[7] = new JTextField(), c); fields[7].setFocusAccelerator('h'); cp.add(fields[8] = new JTextField(), c); fields[8].setFocusAccelerator('i'); c.weightx = 0.0; c.fill = GridBagConstraints.NONE; jbtOk = new JButton("OK"); jbtOk.addActionListener(this); jbtFirst = new JButton("First"); jbtFirst.addActionListener(this); jbtPrev = new JButton("Previous"); jbtPrev.addActionListener(this); jbtNext = new JButton("Next"); jbtNext.addActionListener(this); jbtLast = new JButton("Last"); jbtLast.addActionListener(this); cp.add(jbtOk, c); cp.add(jbtFirst, c); cp.add(jbtPrev, c); cp.add(jbtNext, c); cp.add(jbtLast, c); f.pack(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); // assign actionListener and actionEvent for each button jbtFirst.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { dispProd = 0; } // end firstBtn actionEvent }); // end firstBtn actionListener jbtPrev.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { dispProd--; if (dispProd < 0) { dispProd = product.length - 1; } dispProd = (product.length+dispProd-1) % product.length; } // end prevBtn actionEvent }); // end prevBtn actionListener jbtLast.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { dispProd = product.length - 1; } // end lastBtn actionEvent }); // end lastBtn actionListener jbtNext.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { dispProd++; if (dispProd >= product.length - 1) { dispProd = 0; } } // end nextBtn actionEvent }); // end nextBtn actionListener } private void populateFields(int index) { CD cd = product[index]; fields[0].setText(Long.toString(cd.getNumberCode())); fields[1].setText(cd.getName()); fields[2].setText(Long.toString(cd.getUnits())); fields[3].setText(Double.toString(cd.getPrice())); fields[4].setText(Double.toString(cd.getSum())); fields[5].setText(Double.toString(cd.totalAllInventory(product))); fields[6].setText(cd.getCode()); fields[7].setText(Double.toString(cd.getSum()*.05)); }
Java Syntax (Toggle Plain Text)
class CD { int itemNumber; String name; int units; double price; String itemCode; String command; public CD(int n, String name, double price, int units, String itemCo) { itemNumber = n; this.name = name; this.price = price; this.units = units; itemCode = itemCo; } public int getNumberCode() { return itemNumber; } public String getName() { return name; } public int getUnits() { return units; } public double getPrice() { return price; } public double getSum() { return units*price; } public String getCode() { return itemCode; } public String getActionnCommand() {return command; } public double totalAllInventory(CD[] cds) { double total = 0; for(int j = 0; j < cds.length; j++) total += cds[j].getSum(); return total; } } public class InventoryI { String productnumber; String name; String Text; int numberofunits; double priceperunit; String itemcode; String command; // Create a new instance of Inventory // main constructor for the class public InventoryI(String Item_Number, String Item_Name, int Items_in_Stock, double Item_Price, String Item_Code) { productnumber = Item_Number; name = Item_Name; numberofunits = Items_in_Stock; priceperunit = Item_Price; itemcode = Item_Code; } public void setItemName(String Item_Name) { // sets the items name name = Item_Name; } public void setItemCode(String Item_Code) { // sets the items name itemcode = Item_Code; } public void setItemNumber(String Item_Number) { // Sets the Product =Number // for the item productnumber = Item_Number; } public void setItemsInStock(int Items_in_Stock) { // sets the =number of // units in stock numberofunits = Items_in_Stock; } public void setItemPrice(double Item_Price) { // sets the price of =the // item priceperunit = Item_Price; } public String getItemName() { // returns the Product Name of this item return name; } public String getItemCode() { // returns the Product Name of this item return itemcode; } public String getItemNumber() { // returns the Product Number of the =item return productnumber; } public int getItemsInStock() { // returns how many units are in stock return numberofunits; } public double getItemPrice() { // returns the price of the item return priceperunit; } public double getInventoryIValue() { // returns the total value of =the stock // for this item return priceperunit * numberofunits; } public static double getTotalValueOfAllInventory(InventoryI [] inv) { double tot = 0.0; for(int i = 0; i < inv.length; i++) tot += inv[i].getInventoryIValue(); return tot; } public static InventoryI[] sort(InventoryI [] inventory) { InventoryI temp[] = new InventoryI[1]; //sorting the array using Bubble Sort for(int j = 0; j < inventory.length - 1; j++) { for(int k = 0; k < inventory.length - 1; k++) { if(inventory[k].getItemName().compareToIgnoreCase(inventory[k+1].getItemName()) > 0) { temp[0] = inventory[k]; inventory[k] = inventory[k+1]; inventory[k+1] = temp[0]; }//end if }//end for loop }//end for loop return inventory; } public String toString() { StringBuffer sb = new StringBuffer(); sb.append("CD Title: \t").append(name).append("\n"); sb.append("Item Code: \t").append(itemcode).append("\n"); sb.append("Item #: \t").append(productnumber).append("\n"); sb.append("Number in stock:\t").append(numberofunits).append("\n"); sb.append("Price: \t").append(String.format("$%.2f%n", priceperunit)); sb.append("Inventory Value:\t").append(String.format("$%.2f%n", this.getInventoryIValue())); return sb.toString(); } }
I don't think this is best way to implement event handler for JComboBox
aslo I moved your declaration of JComboBox from ShowGUI() on the start with other variables only initialization is left there. You OK button doesn't do anything as you did not create anonymous event handler for it, like other buttons, and has no action declared in top level event handler with JComboBox
Java Syntax (Toggle Plain Text)
public void actionPerformed(ActionEvent e) { int index = ((JComboBox)e.getSource()).getSelectedIndex(); populateFields(dispProd); }
import java.awt.*;
import java.awt.event.*;
import java.text.NumberFormat; // used to format currency
import javax.swing.*;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
class InventoryMain extends Frame implements ActionListener
{
CD[] product;
JTextField[] fields;
NumberFormat nf;
JButton jbtOk, jbtFirst, jbtPrev, jbtNext, jbtLast;
JLabel label; // logo
JPanel buttonJPanel; // panel to hold buttons
String nameText;
JComboBox combo; // New place to declare combo box
private int index;
int i; // varialbe for looping
double total = 0; // variable for total inventory
static int dispProd = 0; // variable for actionEvents
static JTextArea textArea;
public static void main(String[] args)
{
try
{
UIManager.setLookAndFeel(
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}
catch (Exception e)
{
System.err.println(e.getClass().getName() + ": " + e.getMessage());
}
InventoryMain test = new InventoryMain();
test.initCD();
test.showGUI();
test.populateFields(0);
}
public void initCD() {
//Create an array
product = new CD[10];
//fill in the classes
product[0] = new CD( 1, "Crowbar" , 20.00, 10, "00722");
product[1] = new CD( 2, "Pantera" , 20.00, 10, "00263");
product[2] = new CD( 3, "Ozzy" , 15.00, 10, "00142");
product[3] = new CD( 4, "Soulfly" , 18.00, 10, "00553");
product[4] = new CD( 5, "Down", 24.00, 10, "00789");
product[5] = new CD( 6, "God Forbid" , 10.00, 10, "00712");
product[6] = new CD( 7, "Black Label Society" , 16.00, 10, "00458" );
product[7] = new CD( 8, "Saint Vitus" , 15.00, 10, "00889");
product[8] = new CD( 9, "Clearlight" , 15.00, 10, "00897");
product[9] = new CD( 10, "Testament" , 15.00, 10, "00656");
//Sort elements in array in alphabetical order by product name
// product[0].sortItems(product);
}
private void showGUI() {
JLabel l;
JButton b;
fields = new JTextField[9];
combo = new JComboBox(); // combo box initialization left sa was
for(int j = 0; j < product.length; j++)
combo.addItem(product[j].getName());
combo.addActionListener(this);
Icon logo = new ImageIcon("C:/logo.jpg"); // load logo
label = new JLabel(logo); // create logo label
label.setToolTipText("Company Logo"); // create tooltip
textArea = new JTextArea(product[3] + "\n"); // create textArea for
// product display
JFrame f = new JFrame("CD Inventory");
Container cp = f.getContentPane();
cp.setLayout(new GridBagLayout());
cp.setBackground(UIManager.getColor("control"));
GridBagConstraints c = new GridBagConstraints();
c.gridx = 0;
c.gridy = GridBagConstraints.RELATIVE;
c.gridwidth = 1;
c.gridheight = 1;
c.insets = new Insets(2, 2, 2, 2);
c.anchor = GridBagConstraints.EAST;
cp.add(l = new JLabel("Item Number:", SwingConstants.CENTER), c); l.setDisplayedMnemonic('a');
cp.add(l = new JLabel("Item Name:", SwingConstants.CENTER), c); l.setDisplayedMnemonic('b');
cp.add(l = new JLabel("Number of Units in Stock:", SwingConstants.CENTER), c); l.setDisplayedMnemonic('c');
cp.add(l = new JLabel("Price per Unit: $", SwingConstants.CENTER), c); l.setDisplayedMnemonic('d');
cp.add(l = new JLabel("Total cost of This Item: $", SwingConstants.CENTER), c); l.setDisplayedMnemonic('e');
cp.add(l = new JLabel("Total Value of All Merchandise in Inventory: $",
SwingConstants.CENTER), c); l.setDisplayedMnemonic('f');
cp.add(l = new JLabel("Item Code:", SwingConstants.CENTER), c); l.setDisplayedMnemonic('g');
cp.add(l = new JLabel("Product Restocking Fee: $", SwingConstants.CENTER), c); l.setDisplayedMnemonic('h');
cp.add(combo, c);
c.gridx = 1;
c.gridy = 0;
c.weightx = 1.0;
c.fill = GridBagConstraints.HORIZONTAL;
c.anchor = GridBagConstraints.CENTER;
cp.add(fields[0] = new JTextField(), c);
fields[0].setFocusAccelerator('a');
c.gridx = 1;
c.gridy = GridBagConstraints.RELATIVE;
cp.add(fields[1] = new JTextField(), c); fields[1].setFocusAccelerator('b');
cp.add(fields[2] = new JTextField(), c); fields[2].setFocusAccelerator('c');
cp.add(fields[3] = new JTextField(), c); fields[3].setFocusAccelerator('d');
cp.add(fields[4] = new JTextField(), c); fields[4].setFocusAccelerator('e');
cp.add(fields[5] = new JTextField(), c); fields[5].setFocusAccelerator('f');
cp.add(fields[6] = new JTextField(), c); fields[6].setFocusAccelerator('g');
cp.add(fields[7] = new JTextField(), c); fields[7].setFocusAccelerator('h');
cp.add(fields[8] = new JTextField(), c); fields[8].setFocusAccelerator('i');
c.weightx = 0.0;
c.fill = GridBagConstraints.NONE;
jbtOk = new JButton("OK");
jbtOk.addActionListener(this);
jbtFirst = new JButton("First");
jbtFirst.addActionListener(this);
jbtPrev = new JButton("Previous");
jbtPrev.addActionListener(this);
jbtNext = new JButton("Next");
jbtNext.addActionListener(this);
jbtLast = new JButton("Last");
jbtLast.addActionListener(this);
cp.add(jbtOk, c);
cp.add(jbtFirst, c);
cp.add(jbtPrev, c);
cp.add(jbtNext, c);
cp.add(jbtLast, c);
f.pack();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
// assign actionListener and actionEvent for each button
jbtFirst.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
dispProd = 0;
populateFields(dispProd); // missing method call for update
} // end firstBtn actionEvent
}); // end firstBtn actionListener
jbtPrev.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
dispProd--;
if (dispProd < 0)
{
dispProd = product.length - 1;
}
//WHAT IS THIS FOR??
//dispProd = (product.length+dispProd-1) % product.length;
populateFields(dispProd); // missing method call for update
} // end prevBtn actionEvent
}); // end prevBtn actionListener
jbtLast.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
dispProd = product.length - 1;
populateFields(dispProd); // missing method call for update
} // end lastBtn actionEvent
}); // end lastBtn actionListener
jbtNext.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
dispProd++;
if (dispProd >= product.length - 1)
{
dispProd = 0;
}
populateFields(dispProd); // Missing method call for update
} // end nextBtn actionEvent
}); // end nextBtn actionListener
}
// event handler for combo box
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == combo)
{
//System message, I do not know what you wish to do with combo box
System.out.println("Selected option: " + combo.getSelectedIndex() );
}
}
private void populateFields(int index) {
CD cd = product[index];
fields[0].setText(Long.toString(cd.getNumberCode()));
fields[1].setText(cd.getName());
fields[2].setText(Long.toString(cd.getUnits()));
fields[3].setText(Double.toString(cd.getPrice()));
fields[4].setText(Double.toString(cd.getSum()));
fields[5].setText(Double.toString(cd.totalAllInventory(product)));
fields[6].setText(cd.getCode());
fields[7].setText(Double.toString(cd.getSum()*.05));
}
} Learn to see in another's calamity the ills which you should avoid.
Publilius Syrus
(~100 BC)
LJC - London Java Community, Graduate & Undergraduate Software Development Community, JAVAWUG (Java Web User Group), The London Android Group
Publilius Syrus
(~100 BC)
LJC - London Java Community, Graduate & Undergraduate Software Development Community, JAVAWUG (Java Web User Group), The London Android Group
![]() |
Similar Threads
- PLEASE HELP about Using C# to add an executable file to my program! (C#)
- help with counting letters part of program (C++)
- VB Programming - Inventory Program (Visual Basic 4 / 5 / 6)
- WinXP installation program (Windows NT / 2000 / XP)
- Need help with this conversion program (C++)
- help writing a grep program (C)
- Moving IE to a different Program Folder (Windows NT / 2000 / XP)
- how can i make the program depend on time (C)
- cant remove program from ad and remove programs (Windows NT / 2000 / XP)
Other Threads in the Java Forum
- Previous Thread: Inventory part 6
- Next Thread: Pls Help Me!
| Thread Tools | Search this Thread |
6 actuate android api applet application array arrays automation balls binary bluetooth bold business c++ chat class classes client code codesnippet collections component coordinates database defaultmethod doctype dragging ebook eclipse educational error event exception file fractal froglogic game givemetehcodez graphics gui helpwithhomework hql html ide ideas image ingres input integer internet intersect invokingapacheantprogrammatically j2me java javaexcel javaprojects jni jpanel jtextarea julia linux list loop looping map method methods mobile mysql netbeans newbie nextline parameter php print problem program programming project recursion recursive scanner screen sell server set size sms sort sql string sun swing swt threads tree user websites windows






