User Name Password Register
DaniWeb IT Discussion Community
All
What is DaniWeb IT Discussion Community?
You're currently browsing the Java section within the Software Development category of DaniWeb, a massive community of 391,767 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 3,212 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our Java advertiser: Lunarpages Java Web Hosting
Views: 8601 | Replies: 44
Reply
Join Date: Mar 2007
Posts: 25
Reputation: dkdeleon68 is an unknown quantity at this point 
Rep Power: 2
Solved Threads: 0
dkdeleon68 dkdeleon68 is offline Offline
Light Poster

Inventory program part 5 help

  #1  
Sep 6th, 2007
I need to
Modify the Inventory Program by adding a button to the GUI that allows the user to move to the first item, the previous item, the next item, and the last item in the inventory. If the first item is displayed and the user clicks on the Previous button, the last item should display. If the last item is displayed and the user clicks on the Next button, the first item
should display.
Add a company logo to the GUI using Java graphics classes.

This is what I have so far.

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.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
 
class InventoryMain implements ActionListener
{
    CD[] product;
    JTextField[] fields;
    NumberFormat nf;
 
    public void actionPerformed(ActionEvent e)
    {
        int index = ((JComboBox)e.getSource()).getSelectedIndex();
        populateFields(index);
    }
 
    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);
    final JButton firstBtn = new JButton("First"); // first button
final JButton prevBtn = new JButton("Previous"); // previous button
final JButton nextBtn = new JButton("Next"); // next button
final JButton lastBtn = new JButton("Last"); // last button
final JLabel label; // logo
final JTextArea textArea; // text area for product list
final JPanel buttonJPanel; // panel to hold buttons
//JLabel constructor for logo
Icon logo = new ImageIcon("C:/logo.jpg"); // load logo
label = new JLabel(logo); // create logo label
label.setToolTipText("Company Logo"); // create tooltip


    }
    
    
        
    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;
        cp.add(b = new JButton("OK"), c);
        cp.add(b = new JButton("First"),c); // set up panel
        cp.add(b = new JButton("Prev"),c);
        cp.add(b = new JButton("Next"),c);
        cp.add(b = new JButton("Last"),c);
        b.setMnemonic('o');
        f.pack();
        f.addWindowListener(new WindowAdapter()

        {
            public void windowClosing(WindowEvent evt) 
            {
                System.exit(0);
            }
        });
        f.setVisible(true);
        
    }
 
    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));        
    }
}
 
class CD {
      
    int itemNumber;
    String name;
    int units;
    double price;
    String itemCode; 
  
    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 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;
 
    int numberofunits;
 
    double priceperunit;
        
        String itemcode; 
        

    // 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();
    }
    
    
}
AddThis Social Bookmark Button
Reply With Quote  
Join Date: Mar 2007
Posts: 25
Reputation: dkdeleon68 is an unknown quantity at this point 
Rep Power: 2
Solved Threads: 0
dkdeleon68 dkdeleon68 is offline Offline
Light Poster

Re: Inventory program part 5 help

  #2  
Sep 6th, 2007
I forgot to say that my code compiles and runs showing the buttons but the buttons do nothing.
Reply With Quote  
Join Date: May 2007
Location: USA
Posts: 2,599
Reputation: Ezzaral is just really nice Ezzaral is just really nice Ezzaral is just really nice Ezzaral is just really nice Ezzaral is just really nice 
Rep Power: 11
Solved Threads: 257
Featured Poster
Ezzaral's Avatar
Ezzaral Ezzaral is offline Offline
Posting Maven

Re: Inventory program part 5 help

  #3  
Sep 6th, 2007
You actually define the buttons twice, once in the initCD() method and then again in showGUI(), but you do not add any ActionListeners (or Actions, both are valid) to be executed when the buttons are pressed.
How To Use Actions
Last edited by Ezzaral : Sep 6th, 2007 at 4:07 pm. Reason: added link
Reply With Quote  
Join Date: Mar 2007
Posts: 25
Reputation: dkdeleon68 is an unknown quantity at this point 
Rep Power: 2
Solved Threads: 0
dkdeleon68 dkdeleon68 is offline Offline
Light Poster

Re: Inventory program part 5 help

  #4  
Sep 6th, 2007
here is the code with changes,

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.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
 
class InventoryMain extends Frame implements ActionListener
{
    CD[] product;
    JTextField[] fields;
    NumberFormat nf;
    JButton b;
    
    public void actionPerformed(ActionEvent e)
    {
        int index = ((JComboBox)e.getSource()).getSelectedIndex();
        populateFields(index);
    }
  
    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);
       b = new JButton("First"); // first button
       b.addActionListener(this);
       b = new JButton("Previous"); // previous button
       b.addActionListener(this);
       b = new JButton("Next"); // next button
       b.addActionListener(this);
       b = new JButton("Last"); // last button
       
    }
    
      // inner class for button event handling
   private class ButtonHandler implements ActionListener
   {

      // handle button event
      public void actionPerformed( ActionEvent event )

      {
 

//           System.out.println(event.getActionCommand());
 

         // See which button was pressed
         if (event.getActionCommand()== "Next"){

 
        }

       else if (event.getActionCommand()== "Prev"){

       
        }
         else if (event.getActionCommand()== "Last"){

         
         }
           else if (event.getActionCommand()== "First"){
             

           }
 

       } // end method actionPerformed

   } // end private inner class ButtonHandler
        
    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;
        cp.add(b = new JButton("OK"), c); 
        cp.add(b = new JButton("First"),c);             
        cp.add(b = new JButton("Prev"),c);             
        cp.add(b = new JButton("Next"),c);
        cp.add(b = new JButton("Last"),c);
        b.setMnemonic('o');
        f.pack();
        f.addWindowListener(new WindowAdapter()

        {
            public void windowClosing(WindowEvent evt) 
            {
                System.exit(0);
            }
        });
        f.setVisible(true);
        
    }
 
    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));        
    }
}
 
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;
 
    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();
                
                
    }
    
    
}
Reply With Quote  
Join Date: May 2007
Location: USA
Posts: 2,599
Reputation: Ezzaral is just really nice Ezzaral is just really nice Ezzaral is just really nice Ezzaral is just really nice Ezzaral is just really nice 
Rep Power: 11
Solved Threads: 257
Featured Poster
Ezzaral's Avatar
Ezzaral Ezzaral is offline Offline
Posting Maven

Re: Inventory program part 5 help

  #5  
Sep 6th, 2007
       b = new JButton("First"); // first button
       b.addActionListener(this);
       b = new JButton("Previous"); // previous button
       b.addActionListener(this);
       b = new JButton("Next"); // next button
       b.addActionListener(this);
Still does not do anything. You are assigning "b" instances of new buttons (replacing the previous each time I might add), but the buttons that are getting added to the panel are being created in showGUI(). You need to add the action listener to the button that is being added to the panel. Also, your current action listener implementation is picking up the combo box index. Each button will need to have its own action to perform.
Last edited by Ezzaral : Sep 6th, 2007 at 5:18 pm.
Reply With Quote  
Join Date: Mar 2007
Posts: 25
Reputation: dkdeleon68 is an unknown quantity at this point 
Rep Power: 2
Solved Threads: 0
dkdeleon68 dkdeleon68 is offline Offline
Light Poster

Re: Inventory program part 5 help

  #6  
Sep 6th, 2007
Ok, I changes it so the action listener is added to the buttons that are being added to the panel annd still nothing. by the way, i want to thank you for all your help and advice, they are much appreciated.


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.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
 
class InventoryMain extends Frame implements ActionListener
{
    CD[] product;
    JTextField[] fields;
    NumberFormat nf;
    JButton b;
    
    public void actionPerformed(ActionEvent e)
    {
        int index = ((JComboBox)e.getSource()).getSelectedIndex();
        populateFields(index);
    }
     // inner class for button event handling
   private class ButtonHandler implements ActionListener
   {

      // handle button event
      public void actionPerformed( ActionEvent event )

      {
 

          System.out.println(event.getActionCommand());
 

         // See which button was pressed
         if (event.getActionCommand()== "Next"){

 
        }

       else if (event.getActionCommand()== "Prev"){

       
        }
         else if (event.getActionCommand()== "Last"){

         
         }
           else if (event.getActionCommand()== "First"){
             

           }
 

       } // end method actionPerformed

   } // end private inner class ButtonHandler
    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);
       b = new JButton("First"); // first button      
       b = new JButton("Previous"); // previous button
       b = new JButton("Next"); // next button
       b = new JButton("Last"); // last button
    
       
    }
    
     
        
    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());
       
        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;
        cp.add(b = new JButton("OK"), c);
        b.addActionListener(this);
        cp.add(b = new JButton("First"),c); 
        b.addActionListener(this);
        cp.add(b = new JButton("Prev"),c);
        b.addActionListener(this);
        cp.add(b = new JButton("Next"),c);
        b.addActionListener(this);
        cp.add(b = new JButton("Last"),c);
        b.addActionListener(this);
        b.setMnemonic('o');
        f.pack();
        f.addWindowListener(new WindowAdapter()

        {
            public void windowClosing(WindowEvent evt) 
            {
                System.exit(0);
            }
        });
        f.setVisible(true);
        
    }
 
    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));        
    }
}
 
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;
 
    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();
                
                
    }
    
    
}
Reply With Quote  
Join Date: Dec 2004
Location: London or Slovakia
Posts: 2,137
Reputation: peter_budo has a spectacular aura about peter_budo has a spectacular aura about peter_budo has a spectacular aura about 
Rep Power: 10
Solved Threads: 257
Moderator
Featured Poster
peter_budo's Avatar
peter_budo peter_budo is online now Online
Code tags enforcer

Re: Inventory program part 5 help

  #7  
Sep 7th, 2007
To be fair this program is in mess you should organize it little, good thing is you willing to work on it.
Bellow are some uptades for you, check the red marked parts.

PS: Can you please next time put each java file is separated code tags? Thanx
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.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;
    
    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);
    }
    
    /* DOESN'T DO ANYTHING
     public void actionPerformed(ActionEvent e)
    {
        int index = ((JComboBox)e.getSource()).getSelectedIndex();
        populateFields(index);
    }
     // inner class for button event handling
   private class ButtonHandler implements ActionListener
   {
      // handle button event
      public void actionPerformed( ActionEvent event )
      {
          System.out.println(event.getActionCommand());
         // See which button was pressed
         if (event.getActionCommand()== "Next"){ 
        }

       else if (event.getActionCommand()== "Prev"){
       
        }
         else if (event.getActionCommand()== "Last"){
         
         }
           else if (event.getActionCommand()== "First"){             

           }
       } // end method actionPerformed

   } // end private inner class ButtonHandler*/
    
    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);
   		
       /* WHAT IS THIS FOR ? ? ?
       b = new JButton("First"); // first button      
       b = new JButton("Previous"); // previous button
       b = new JButton("Next"); // next button
       b = new JButton("Last"); // last button */      
    }
    
     
        
    private void showGUI() 
    {
        JLabel l;
        /* ONE BUTTON DOESN'T DO FOR ALL ! ! !
           ALSO THIS IS SECOND DECLARATION OF THE BUTTON, ONE ON THE START
         JButton b;*/
        fields = new JTextField[9];
        JComboBox combo = new JComboBox();
        for(int j = 0; j < product.length; j++)
            combo.addItem(product[j].getName());
       
        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);
        /* INTERESTING SHORTCUT BUT YOU OVERWRITING YOUR BUTTON b
         	THAT IS ONE OF THE REASONS WHY NOTHING IS WORKING FOR YOU ! ! !
        cp.add(b = new JButton("OK"), c);
        b.addActionListener(this);
        cp.add(b = new JButton("First"),c); 
        b.addActionListener(this);
        cp.add(b = new JButton("Prev"),c);
        b.addActionListener(this);
        cp.add(b = new JButton("Next"),c);
        b.addActionListener(this);
        cp.add(b = new JButton("Last"),c);
        b.addActionListener(this);*/
        
        /* ASIGN MNEMONIC TO WHICH OF THE BUTTONS ? ? ?
         b.setMnemonic('o');*/
        f.pack();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        /* ABOVE IS SIMPLER SOLUTION
         f.addWindowListener(new WindowAdapter()

        {
            public void windowClosing(WindowEvent evt) 
            {
                System.exit(0);
            }
        });*/
        f.setVisible(true);
        
    }
 
    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));        
    }
}