View Single Post
  #2 (permalink)  
Old 01-20-2008, 10:18 AM
badness badness is offline
Member
 
Join Date: Nov 2007
Posts: 8
badness is on a distinguished road
Here is my code so far:

import java.util.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;


class Product implements Comparable {
String name;
double number;
long stockQuantity;
double price;

public Product() {
name = "";
number = 0.0;
stockQuantity = 0L;
price = 0.0;

}
public Product(String name, int number, long stockQuantity, double price) {
this.name = name;
this.number = number;
this.stockQuantity = stockQuantity;
this.price = price;
}
public void setItemName(String name) {
this.name = name;
}
public String getItemName() {
return name;
}
public void setItemNumber(double number) {
this.number = number;
}
public double getItemNumber() {
return number;
}
public void setStockQuantity(long quantity) {
stockQuantity = quantity;
}
public long getStockQuantity() {
return stockQuantity;
}
public void setItemPrice(double price) {
this.price = price;
}
public double getItemPrice() {
return price;
}
public double calculateInventoryValue() {
return getItemPrice() * getStockQuantity();
}
public int compareTo (Object o) {
Product p = (Product)o;
return name.compareTo(p.getItemName());
}
public String toString() {
return "Name :"+getItemName() + "\nNumber"+number+"\nPrice"+price+"\nQuantity"+sto ckQuantity + "\nValue :"+calculateInventoryValue();
}

}



class DVD extends Product implements Comparable {
private String title;
public DVD() {
super(); //Call the constructor in Product
title = ""; //Add the additonal attribute
}
public DVD(String name, int number, long stockQuantity, double price, String title) {
super(name, number, stockQuantity, price); //Call the constructor in Product
this.title = title; //Add the additonal attribute
}
public void setTitle(String title) {
this.title = title;
}
public String getTitle() {
return title;
}
public double calculateInventoryValue() {
return getItemPrice() * getStockQuantity() + getItemPrice()*getStockQuantity();
}

public double calculateRestockFee() {
return getItemPrice() * 0.05;
}
public int compareTo (Object o) {
Product p = (Product)o;
return getItemName().compareTo(p.getItemName());
}
public String toString() {
return "Name :"+getItemName() + "\nNumber"+getItemNumber()+"\nPrice"+getItemPrice( )+"\nQuantity"+getStockQuantity() +"\nTitle :"+getTitle()+"\nValue"+calculateInventoryValue ();
}
}

public class Inventory5_5 extends JFrame implements ActionListener {


private class MyPanel extends JPanel {
ImageIcon image = new ImageIcon("DVDgraphic.jpg");
int width = image.getIconWidth();
int height = image.getIconHeight();
long angle = 0;

public MyPanel(){
super();
}
public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2d = (Graphics2D)g;
g2d.rotate (Math.toRadians(angle), 60+width/2, 60+height/2);
g2d.drawImage(image.getImage(), 60, 60, this);
g2d.dispose();
}
}//end class MyPanel


int currentIndex; //Currently displayed Item
Product[] supplies = new Product[4];
JLabel name ;
JLabel number;
JLabel title;
JLabel quantity;
JLabel price;
JLabel fee;
JLabel totalValue;

JTextField nameField = new JTextField(20);
JTextField numberField = new JTextField(20);
JTextField titleField = new JTextField(20);
JTextField quantityField = new JTextField(20);
JTextField priceField = new JTextField(20);


JPanel display;
JPanel displayHolder;
JPanel panel;
public Inventory5_5() {
makeTheDataItems();

setSize(850, 700);
setTitle("Doug's DVD Emporium Inventory Package");
//make the panels
display = new JPanel();
JPanel other = new JPanel();
JPanel picture = new MyPanel();
JPanel buttons = new JPanel();
JPanel centerPanel = new JPanel();
displayHolder = new JPanel();
display.setLayout(new GridLayout(7, 1));
//other.setLayout(new GridLayout(1, 1));

//make the labels
name = new JLabel("Item :");
number = new JLabel("Number :");
title = new JLabel("Title :");
quantity = new JLabel("Quantity :");
price = new JLabel("Price :");
fee = new JLabel("Restocking Fee :");
totalValue = new JLabel("Total Value :");

//Use the utility method to make the buttons
JButton first = makeButton("First");
JButton next = makeButton("Next");
JButton previous = makeButton("Previous");
JButton last = makeButton("Last");
JButton exit = makeButton("Exit");


//Other buttons
JButton add = makeButton("Add");
JButton delete = makeButton("Delete");
JButton save = makeButton("Save");
JButton modify = makeButton("Modify");
JButton search = makeButton("Search");

//Add the labels to the display panel
display.add(name);
display.add(number);
display.add(title);
display.add(quantity);
display.add(price);
display.add(fee);
display.add(totalValue);

//add the buttons to the buttonPanel
buttons.add(first);
buttons.add(previous);
buttons.add(next);
buttons.add(last);
buttons.add(search);
buttons.add(exit);
buttons.add(delete);
buttons.add(save);
buttons.add(modify);


//Add the picture panel and display to the centerPanel
displayHolder.add(display);
centerPanel.setLayout(new GridLayout(2, 1));
centerPanel.add(picture);
centerPanel.add(displayHolder);
other.add(buttons);
JPanel forAdd = new JPanel(); // add the other buttons to this panel
forAdd.add(add);
other.add(forAdd);


//Add the panels to the frame

getContentPane().add(centerPanel, "Center");
getContentPane().add(other, "South");
this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
setVisible(true);
}

private void makeTheDataItems () {
Product p1 = new DVD("DVD", 001, 20, 10.99, "The Ring");
Product p2 = new DVD("DVD", 002, 50, 13.99, "The Lord of the Rings: The Two Towers");
Product p3 = new DVD("DVD", 003, 10, 10.99, "Perfect Storm");
Product p4 = new DVD("DVD", 004, 30, 9.99, "Happy Gilmore");
supplies[0] = p1;
supplies[1] = p2;
supplies[2] = p3;
supplies[3] = p4;
}

//Utility method for creating and dressing buttons
private JButton makeButton(String label) {
JButton button = new JButton(label);
button.setActionCommand(label);
button.addActionListener(this);
return button;
}

private void addItem() {
panel = new JPanel();
JPanel add = new JPanel();
add.setLayout(new GridLayout(2, 1));
add.setLayout(new GridLayout(5, 5));
JButton addIt = makeButton("Add Item");

JLabel name = new JLabel("Item :");
JLabel number = new JLabel("Number :");
JLabel title = new JLabel("Title :");
JLabel quantity = new JLabel("Quantity :");
JLabel price = new JLabel("Price :");

add.add(name); add.add(nameField);
add.add(number); add.add(numberField);
add.add(title); add.add(titleField);
add.add(quantity); add.add(quantityField);
add.add(price); add.add(priceField);
panel.add(add);
JPanel forAddIt = new JPanel();
forAddIt.add(addIt);
panel.add(forAddIt);
displayHolder.remove(display);
displayHolder.add(panel);

//display = panel;
this.setVisible(true);
}


public static void main( String args[]) {
Inventory5_5 object = new Inventory5_5();
} // end main method

public void actionPerformed(ActionEvent event) {
String command = event.getActionCommand();
if(command.equals("First")) {
displayFirst();
}
else if(command.equals("Next")) {
displayNext();
}
else if(command.equals("Previous")) {
displayPrevious();
}
else if(command.equals("Last")) {
displayLast();
}
else if(command.equals("Exit")) {
this.dispose();
System.exit(0);
}
else if(command.equals("Add")) {
addItem();
}
else if(command.equals("Add Item")) {
addItemToArray();
}


}

private void addItemToArray() {
Product p = new DVD(nameField.getText(), supplies.length -2, Long.parseLong(quantityField.getText()),
Double.parseDouble(priceField.getText()), titleField.getText());
//Extend size of array by one first
Product[] ps = new Product[supplies.length + 1];
for(int i = 0; i < ps.length-1; i++) {
ps[i] = supplies[i];
}
ps[supplies.length] = p;
supplies = ps;
displayHolder.remove(panel);
displayHolder.add(display);
displayLast();
this.setVisible(false);
this.setVisible(true);

}


private void displayItemAt(int index) {
DVD product = (DVD)supplies[index];
name.setText("Item: "+ product.getItemName());
number.setText("Item Number: "+ product.getItemNumber());
title.setText("Title: "+ product.getTitle());
quantity.setText("Quantity In Stock: "+ product.getStockQuantity());
price.setText("Item Price: "+ product.getItemPrice());
totalValue.setText("Total: " + product.calculateInventoryValue());
fee.setText("Restocking Fee :"+product.calculateRestockFee());
this.repaint();
this.setVisible(true);
}

public void displayFirst() {
displayItemAt(0);
currentIndex = 0;
}

public void displayNext() {
if(currentIndex == supplies.length-1) {
displayFirst();
currentIndex = 0;
}
else {
displayItemAt(currentIndex + 1);
currentIndex++;

}
}

public void displayPrevious() {
if(currentIndex == 0) {
displayLast();
currentIndex = supplies.length-1;
}
else {
displayItemAt(currentIndex - 1);
currentIndex--;
}
}

public void displayLast() {
displayItemAt(supplies.length-1);
currentIndex = supplies.length-1;
}

}//end class Inventory5_5


Thanks again. Reminder the delete, modify, search, and save need to function. The rest works.

Badness
Reply With Quote