Home | How it works | Projects archive | Contact Us
Air Compressor Bot
 
The Career Path of Freelance Programming Jobs 

   It Inventory Final

Bidding Time:
29/05/2008 13:51 - 01/06/2008 13:51
Budget:
$40-70
Status:
Closed

Job Type:
Java
Description:



Inventory Program Part 5
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.
I am not picky about the logo, and generic .gif image will do.

Inventory Program Part 6
Modify the Inventory Program to include an Add button, a Delete button, and a
Modify
button on the GUI. These buttons should allow the user to perform the
corresponding
actions on the item name, the number of units in stock, and the price of each
unit. An
item added to the inventory should have an item number one more than the
previous last
item.
Add a Save button to the GUI that saves the inventory to a
C:\data\inventory.dat file.
Use exception handling to create the directory and file if necessary.
Add a search button to the GUI that allows the user to search for an item in
the inventory
by the product name. If the product is not found, the GUI should display an
appropriate
message. If the product is found, the GUI should display that product's
information in the
GUI.

This is where I am at now...but need to be at the finish line by Saturday..

import java.util.Arrays; // program uses arrays
import java.awt.*;
import java.awt.event.*;
import javax.swing.*; // Import the java swing package
import javax.swing.Icon;
import javax.swing.ImageIcon;


public class Inventory5 {

// main method begins execution of java application
public static void main(String[] args) {
System.out.println("\nCheckPoint: Inventory Part 5");
System.out.println("My DVD Collection\n");

Movie dvd = null;
Inventory inventory = new Inventory();

dvd = new Movie(1, "Live Free or Die Hard", 18, 19.99f, 2001);
System.out.println(dvd);
inventory.addMovie(dvd);

dvd = new Movie(2, "The Patriot", 14, 20.99f, 1998);
System.out.println(dvd);
inventory.addMovie(dvd);

dvd = new Movie(3, "Full Metal Jacket", 1, 21.99f, 1995);
System.out.println(dvd);
inventory.addMovie(dvd);

dvd = new Movie(4, "Coyote Ugly", 15, 18.99f, 2003);
inventory.addMovie(dvd);
System.out.println(dvd);

dvd = new Movie(5, "Apocalypto", 10, 21.99f, 2006);
System.out.println(dvd);
inventory.addMovie(dvd);

dvd = new Movie(6, "Monster in Law", 1, 7.99f, 2005);
System.out.println(dvd);
System.out.println("\nEnd of DVD collection!\n");
inventory.addMovie(dvd);

inventory.printInventory();
new InventoryGUI(inventory);
} // end main

} // end Inventory5


class DVD {
private int itemNo;
private String title;
private int inStock;
private float unitPrice;

DVD(int itemNo, String title, int inStock, float unitPrice) {
this.itemNo = itemNo;
this.title = title;
this.inStock = inStock;
this.unitPrice = unitPrice;
}

public int getItemNo() { return itemNo; }
public String getTitle() { return title; }
public int getInStock() { return inStock; }
public float getUnitPrice() { return unitPrice; }

public float value() {
return inStock * unitPrice;
}

public String toString() {
return String.format("itemNo=%2d title=%-22s inStock=%3d price=$%7.2f
value=$%8.2f",
itemNo, title, inStock, unitPrice, value());
}

} // end DVD


class Inventory {
// Setup an array of Movies (set it to hold 30 items)
private final int INVENTORY_SIZE = 30;
private DVD[] items;
private int numItems;

Inventory() {
items = new Movie[INVENTORY_SIZE];
numItems = 0;
}

public int getNumItems() {
return numItems;
}

public DVD getDVD(int n) {
return items[n];
}

// Adds a Movie to the array of Movies. Adds to first empty slot found.
public void addMovie(DVD item) {
items[numItems] = item;
++numItems;
}

// Loop through our array of Movies and add up the total value.
// Go item by item adding the quantity on hand x its price.
// Add that value to a running total accumulator variable.
public double value() {
double sumOfInventory = 0.0;

for (int i = 0; i < numItems; i++)
sumOfInventory += items[i].value();

return sumOfInventory;
}

// Prints the inventory list including name, quantity, price,
// and total stock value for each item.
public void printInventory() {
System.out.println("\nShelly's DVD Inventory\n");

// If no items were found, print a message saying the inventory is empty.
if (numItems <= 0) {
System.out.println("Inventory is empty at the moment.\n");
} else {
for (int i = 0; i < numItems; i++)
System.out.printf("%3d %s\n", i, items[i]);
System.out.printf("\nTotal value in inventory is $%,.2f\n\n", value());
}
}

} // end Inventory


// Extends DVD class from the base class DVD
class Movie extends DVD {
// Holds movie year and adds restocking fee
private int movieYear;

// Constructor, calls the constructor of Movie first
public Movie(int MovieID, String itemName, int quantityOnHand, float itemPrice,
int year) {
super(MovieID, itemName, quantityOnHand, itemPrice);
// Pass on the values needed for creating the Movie class first thing
this.movieYear = movieYear;
}

// To set the year manually
public void setYear(int year) {
movieYear = year;
}

// Get the year of this DVD Movie
public int getMovieYear() {
return movieYear;
}

// Overrides value() in Movie class by calling the base class version and
// adding a 5% restocking fee on top
public float value() {
return super.value() + restockingFee();
}

// Simply gets the base class's value, and figures out the 5% restocking fee
only
public float restockingFee() {
return super.value() * 0.05f;
}

} // end Movie


// GUI for the Inventory
// Contains an inventory of DVD's and lets the user step through them one by
one
class InventoryGUI extends JFrame
{
// access inventory for DVD Collection
private Inventory theInventory;

// index in the inventory of the currently displayed DVD.
// the index starts at 0, goes to the number of DVDs in the inventory minus 1
private int index = 0;

// GUI elements to display currently selected DVD information
private final JLabel itemNumberLabel = new JLabel(" Item Number:");
private JTextField itemNumberText;

private final JLabel prodnameLabel = new JLabel(" Product Name:");
private JTextField prodnameText;

private final JLabel prodpriceLabel = new JLabel(" Price:");
private JTextField prodpriceText;

private final JLabel numinstockLabel = new JLabel(" Number in Stock:");
private JTextField numinstockText;

private final JLabel valueLabel = new JLabel(" Value:");
private JTextField valueText;

private final JLabel restockingFeeLabel = new JLabel(" Restocking Fee:");
private JTextField restockingFeeText;

private final JLabel totalValueLabel = new JLabel(" Inventory Total Value:");
private JTextField totalValueText;

private JPanel centerPanel;
private JPanel buttonPanel;


// constructor for the GUI, in charge of creating all GUI elements
InventoryGUI(Inventory inventory) {
super("Shelly's Movie Inventory");
final Dimension dim = new Dimension(140, 20);
final FlowLayout flo = new FlowLayout(FlowLayout.LEFT);
JPanel jp;

// create the inventory object that will hold the product information
theInventory = inventory;

// setup the GUI

// product information
// setup a panel to collect all the components.
centerPanel = new JPanel();
centerPanel.setLayout(new BoxLayout(centerPanel, BoxLayout.Y_AXIS));


buttonPanel = new JPanel();

JButton firstButton = new JButton("First");
firstButton.addActionListener(new FirstButtonHandler());
buttonPanel.add(firstButton);

JButton previousButton = new JButton("Previous");
previousButton.addActionListener(new PreviousButtonHandler());
buttonPanel.add(previousButton);

JButton nextButton = new JButton("Next");
nextButton.addActionListener(new NextButtonHandler());
buttonPanel.add(nextButton);

JButton lastButton = new JButton("Last");
lastButton.addActionListener(new LastButtonHandler());
buttonPanel.add(lastButton);

JButton addButton = new JButton("Add");
addButton.addActionListener(new AddButtonHandler());
buttonPanel.add(addButton);

JButton deleteButton = new JButton("Delete");
deleteButton.addActionListener(new DeleteButtonHandler());
buttonPanel.add(deleteButton);

JButton modifyButton = new JButton("Modify");
modifyButton.addActionListener(new ModifyButtonHandler());
buttonPanel.add(modifyButton);

JButton saveButton = new JButton("Save");
saveButton.addActionListener(new SaveButtonHandler());
buttonPanel.add(saveButton);

JButton searchButton = new JButton("Search");
searchButton.addActionListener(new SearchButtonHandler());
buttonPanel.add(searchButton);

centerPanel.add(buttonPanel);

jp = new JPanel(flo);
itemNumberLabel.setPreferredSize(dim);
jp.add(itemNumberLabel);
itemNumberText = new JTextField(3);
itemNumberText.setEditable(false);
jp.add(itemNumberText);
centerPanel.add(jp);

jp = new JPanel(flo);
prodnameLabel.setPreferredSize(dim);
jp.add(prodnameLabel);
prodnameText = new JTextField(17);
prodnameText.setEditable(false);
jp.add(prodnameText);
centerPanel.add(jp);

jp = new JPanel(flo);
prodpriceLabel.setPreferredSize(dim);
jp.add(prodpriceLabel);
prodpriceText = new JTextField(17);
prodpriceText.setEditable(false);
jp.add(prodpriceText);
centerPanel.add(jp);

jp = new JPanel(flo);
numinstockLabel.setPreferredSize(dim);
jp.add(numinstockLabel);
numinstockText = new JTextField(5);
numinstockText.setEditable(false);
jp.add(numinstockText);
centerPanel.add(jp);

jp = new JPanel(flo);
restockingFeeLabel.setPreferredSize(dim);
jp.add(restockingFeeLabel);
restockingFeeText = new JTextField(17);
restockingFeeText.setEditable(false);
jp.add(restockingFeeText);
centerPanel.add(jp);

jp = new JPanel(flo);
valueLabel.setPreferredSize(dim);
jp.add(valueLabel);
valueText = new JTextField(17);
valueText.setEditable(false);
jp.add(valueText);
centerPanel.add(jp);

// add the overall inventory information to the panel
jp = new JPanel(flo);
totalValueLabel.setPreferredSize(dim);
jp.add(totalValueLabel);
totalValueText = new JTextField(17);
totalValueText.setEditable(false);
jp.add(totalValueText);
centerPanel.add(jp);

// add the panel to the GUI display
setContentPane(centerPanel);

repaintGUI();

setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(420, 480);
setResizable(false);
setLocationRelativeTo(null);
setVisible(true);
}

// (re)display the GUI with current product's information
public void repaintGUI() {
Movie temp = (Movie) theInventory.getDVD(index);

if (temp != null) {
itemNumberText.setText("" + temp.getItemNo());
prodnameText.setText(temp.getTitle());
prodpriceText.setText(String.format("$%.2f", temp.getUnitPrice()));
restockingFeeText.setText(String.format("$%.2f", temp.restockingFee()));
numinstockText.setText("" + temp.getInStock());
valueText.setText(String.format("$%.2f", temp.value()));
}
totalValueText.setText(String.format("$%.2f", theInventory.value()));
}


class FirstButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
index = 0;
repaintGUI();
}
}

class PreviousButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent e){
int numItems = theInventory.getNumItems();
index = (--index) % numItems;
repaintGUI();
}
}

class NextButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
int numItems = theInventory.getNumItems();
index = (++index) % numItems;
repaintGUI();
}
}
class LastButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
int numItems = theInventory.getNumItems();
index = (numItems -1) % numItems;
repaintGUI();

}
}

class AddButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent e){
repaintGUI();
}
}

class SaveButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent e){
repaintGUI();
}
}

class ModifyButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent e){
repaintGUI();
}
}

class DeleteButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent e){
repaintGUI();
}
}

class SearchButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent e){
repaintGUI();
}
}


} // End InventoryGUI class

STOPzilla! Anti-Spyware Software

Related Projects:
Slot Machine Casino
Phpfox Battles Mod
AnnapolisWedding rework
Urgent - need a flash advertising banner
Drupal Google Map Custom features and markers

This project is the proprietary information of . Click here to remove this project from OUR database.
Operating System:
N/A
Database System:
N/A
<<< back

Recent Projects Archive:

Thursday - Wednesday - Tuesday - Monday - Sunday - Saturday - Friday

View all freelance web projects

 
Home | Projects archive | RSS | Resources | Links | Contact Us © 2004-2009 ProjectsList.biz /0.03