I a trying to get help coding the buttons in my code. My buttons need to loop though the products in the array.
/* Program: Display Inventory GUI Form
* File: DisplayInventory.java
* Summary: Inherits JFrame and build an aplication that contains label and
* text fields.
* Author: Mark Byous
* Date: 10/10/2013
*/
import java.awt.GridLayout; // create grid layout
import java.awt.BorderLayout; // set border layout
import java.awt.event.ActionEvent; // required to click events
import java.awt.event.ActionListener; // required for click events
import javax.swing.JPanel; // create panels
import javax.swing.JFrame; // require to use the frame
import javax.swing.JButton; // required to create buttons
import javax.swing.JLabel; // requierd to create text fields
import javax.swing.JTextField; // required to create texts fields
import javax.swing.ImageIcon; // required to access images
public class DisplayInventory extends JFrame implements ActionListener
{
// Declare Class Variables
// Declare Gridpanel as main panel inserted into gridPanel
private JPanel gridPanel = new JPanel(); // one panel that contains my gridLayout
private JPanel panel = new JPanel(); // panels used to display buttons, labels and text fields
// Declare buttons
JButton firstButton; // first button
JButton nextButton; // next button
JButton previousButton; // previous button
JButton lastButton; // last button
// Declare text Fields
JTextField itemField; // item field
JTextField itemNumberField; // itemnumber field
JTextField priceField; // price field
JTextField inventoryField; // inventory field
JTextField numberField; // number field
JTextField weightField; // weight field
JTextField restockField; // restock field
JTextField totalInventoryField; // totalInventory field
// Declare Labels
JLabel lblItem; // item label
JLabel lblItemNumber; // itemNumber label
JLabel lblPrice; // price label
JLabel lblInventory; // inventory label
JLabel lblNumber; // number label
JLabel lblWeight; // weight label
JLabel lblRestock; // restock label
JLabel lblTotalInventory; // totalInventory label
// Declare 5 Stock Items
Product product1;
Product product2;
Product product3;
Product product4;
Product product5;
private static final int Max_Product = 5; // maximum size of product array
Product[] product = new Product[Max_Product]; // create product array
private static int ArrayIndex = 0; // array index
public DisplayInventory() // constructor
{
// begin DisplayInventory class
// create and initialize five product objects
// instantiate the Stock class
Product product1 = new Product("Fuse", 123, 10.25, 10, .50); // create an instance of a stock item
Product product2 = new Product("Resistor", 124, 6.55, 6, .0042); // create an instance for a stock item
Product product3 = new Product("Capacitor", 125, 8.47, 12, 1.00); // create an instance for a stock item
Product product4 = new Product("Inductor", 126, 9.86, 14, 2.00); // create an instance for a stock item
Product product5 = new Product("Transistor", 127, 14.60, 10, .0034); // create an insatnce for a stock item
// add the product objects to the array
product[0] = product1; // add Fuse to Stock array
product[1] = product2; // add Resistor to Stock array
product[2] = product3; // add Capacitor to Stock array
product[3] = product4; // add Inductor to Stock array
product[4] = product5; // add Transistor to Stock array
Product.sortByItem(product); // sort the array of products by name
gridPanel.setLayout(new BorderLayout()); // create border layout
gridPanel.add(this.createLabelPanel(), BorderLayout.WEST); // add label panel
gridPanel.add(this.createTextPanel(), BorderLayout.CENTER); // add field panel
gridPanel.add(this.createButtonPanel(), BorderLayout.SOUTH); // add button panel
add(gridPanel);
}
// helper method creates a panel for the button
private JPanel createButtonPanel()
{
// ActionListener btnListen = new ButtonListener(); // create listener
//create buttons
firstButton = new JButton("First"); // create first button
firstButton.setActionCommand("First"); // action command for button event // button listener to click button
firstButton.addActionListener(this);
nextButton = new JButton("Next"); // create and label button
nextButton.setActionCommand("Next"); // action command for click button event
// nextButton.addActionListener(btnListen); // button listener for click button event
nextButton.addActionListener(this);
previousButton = new JButton("Previous"); // create button to view previous product
previousButton.setActionCommand("Previous"); // action command for click button
previousButton.addActionListener(this); // button for click button event
lastButton = new JButton("Last"); // create last button
lastButton.setActionCommand("Last"); // action command for click button
lastButton.addActionListener(this); // add action Listtener for click button
// create panel object
JPanel panel = new JPanel();
panel.add(firstButton); // add first button panel
panel.add(nextButton); // add next button panel
panel.add(previousButton); // add previous button panel
panel.add(lastButton); // add last button panel
return panel; // return panel
} // end createButtonPanel method
private JPanel createLabelPanel() {
// create instance label objects
ImageIcon icon = new ImageIcon(".\\src\\productLogo.jpg"); // get logo
JLabel lblLogo = new JLabel(icon); // add the image to a label
lblItem = new JLabel("Product Name:"); // label for name of product
lblItemNumber = new JLabel("Product Number:"); // Label for product number
lblPrice = new JLabel("Product Price:"); // label for pricr of product
lblInventory = new JLabel("The Inventory Price is:"); // label for total inventory price
lblNumber = new JLabel("Number of Items in Stock:"); // label for amount of items in inventory
lblWeight = new JLabel("Weight of Product:"); // label for weight of product
lblRestock = new JLabel("The Restock fee is:"); //label for restocking fee
lblTotalInventory = new JLabel("The Price of the Entire Inventory:"); // label for the total inventory
panel = new JPanel();
panel.setLayout(new GridLayout(6, 1));
// add labels to the panel
panel.add(lblLogo);
panel.add(lblItem);
panel.add(lblItemNumber);
panel.add(lblPrice);
panel.add(lblInventory);
panel.add(lblNumber);
panel.add(lblWeight);
panel.add(lblRestock);
panel.add(lblTotalInventory);
return panel;
} // end createlabelPanel method
private JPanel createTextPanel()
{
// create instances of text box objects
JLabel lblCompanyName = new JLabel(" Huber"); // company Logo
itemField = new JTextField(); // item text field
itemField.setEditable(false); // set the field as not editable so that the user can not edit field
itemNumberField = new JTextField(); // itemNumber text field
itemNumberField.setEditable(false); // set the field as not editable so that the user can not edit the field
priceField = new JTextField(); // price text field
priceField.setEditable(false); // set field as not editable
numberField = new JTextField(); // number text field
numberField.setEditable(false); // set field as not editable
weightField = new JTextField(); // weight text field
weightField.setEditable(false); // set field as not editable
inventoryField = new JTextField(); // inventory text field
inventoryField.setEditable(false); // set field as not editable
restockField = new JTextField(); // restock text field
restockField.setEditable(false); // set field as not editable
totalInventoryField = new JTextField(); // totalInventory text field
totalInventoryField.setEditable(false); // set field as not editable
panel = new JPanel(); // create panel object
panel.setLayout(new GridLayout(6, 1)); // create grid layout
panel.add(lblCompanyName); // add logo to gridLayout
panel.add(itemField); // add the product name to the grid layout
panel.add(itemNumberField); // add the product number to the grid layout
panel.add(priceField); // add the product price to the grid layout
panel.add(inventoryField); // add the price of the product inventory to the grid layout
panel.add(numberField); // add the number of items in stock to the grid layout
panel.add(weightField); // add the weight of the product to the grid layout
panel.add(restockField); // add the restoick fee to the grid layout
panel.add(totalInventoryField); // add the amount of the totalInventory to that grid layout
return panel; // return the panel
} // end createTextPanel method
@Override
public void actionPerformed(ActionEvent e)
{
if(product[ArrayIndex].getTotalInventory() == 0) //
{
for(int x=0;x<product.length;x++)
product[x].sumInventoryOfProducts(product[x].getInventory());
} // end for
totalInventoryField.setText(String.valueOf(product[ArrayIndex].getTotalInventory())); // display the sum of inventory
// add button functions
if( "First".equals(e.getActionCommand())) // if the first button is cliocked
{
ArrayIndex = 0; // set array index to the first element
setFieldValues(); // display product information to form
}
if("Next".equals(e.getActionCommand())) // if the next button is clicked
{
ArrayIndex = (++ArrayIndex); // set array index to the previous element
setFieldValues(); // diplay product information to the form
}
if("Previous".equals(e.getActionCommand())) // if the previous button is clicked
{
--ArrayIndex;
if (ArrayIndex < 0)
ArrayIndex = product.length - 1; // set array index to the next element
setFieldValues(); // display product information to the form
}
if("Last".equals(e.getActionCommand())) // if the last button is clicked
{
ArrayIndex = product.length - 1; // set array index to the last button
setFieldValues(); // display product information to form
}
} // end action performed
private void setFieldValues()
{ // display product information to GUI
itemField.setText(product[ArrayIndex].getItem()); // get the product name
// and assign it to the item text field
itemNumberField.setText(String.valueOf(product[ArrayIndex].getItemNumber())); // get the product number
// and assign it to the itemnumber text field
priceField.setText(String.valueOf(product[ArrayIndex].getPrice())); // get the price of the product
// and assign it to the price text field
inventoryField.setText(String.valueOf(product[ArrayIndex].getInventory())); // get the inventory price
// and assign it to the inevntory text field
numberField.setText(String.valueOf(product[ArrayIndex].getNumber())); // get the number of items in stock
// and assign it to the number text field
weightField.setText(String.valueOf(product[ArrayIndex].getWeight())); // get the weight of the product
// and assign it to the weight text field
restockField.setText(String.valueOf(product[ArrayIndex].getRestock())); // get the restock fee
// and assign it to the restock text field
totalInventoryField.setText(String.valueOf(product[ArrayIndex].getTotalInventory())); // get the amount of the totalInventory
// and assign it to the totalInventory text field
ArrayIndex = ArrayIndex + 1; // increment the arrayindex to get to the next value
}
public static void main(String[] args)
{
JFrame frame = new DisplayInventory(); // create a frame object
frame.setSize(400, 200); // set the size of the window
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E); // close the application
frame.setTitle("My Inventory Application"); // set the title of the window
frame.setLocationRelativeTo(null); // center the form
frame.setVisible(true); // display form
} // end main method
} // end DisplayInventory class