Results 1 to 2 of 2
  1. #1
    badness is offline Member
    Join Date
    Nov 2007
    Posts
    8
    Rep Power
    0

    Default Final Inventory tweeks

    Assignment:

    • 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.

    I have added the buttons that I need, the graphic (cheesy, I know) and put the import java.io.*; utitility in the code. The additem function works propery but the delete, search, modify and save buttons need to funcition as described before thus the import java.io.*; at the top of the code. I reviewed a forum for saving data that has this code:

    public class InputFile1
    {
    public static void main (String args[]) throws IOException
    {
    final FileWriter inputthingy = new FileWriter("inputfile1.dat");
    final BufferedWriter bufferthingy = new BufferedWriter(inputthingy);
    final PrintWriter printythingy = new PrintWriter(bufferthingy);
    try {

    printythingy.println ("Hello inputthingy file");
    System.out.println("File write successful");
    } catch (Exception e) {
    System.out.println("Error writing to file");
    }
    bufferthingy.close();

    System.exit(0);
    }

    }

    What should I change to get this to work in my existing code that I will post in the next reply section. Thanks for your help

    Badness

  2. #2
    badness is offline Member
    Join Date
    Nov 2007
    Posts
    8
    Rep Power
    0

    Default

    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

Similar Threads

  1. Inventory Program modification help
    By badness in forum Java Applets
    Replies: 1
    Last Post: 01-17-2008, 06:24 AM
  2. Inventory part 3 program problems
    By badness in forum New To Java
    Replies: 1
    Last Post: 12-17-2007, 08:00 AM
  3. Inventory part 2 help please
    By badness in forum New To Java
    Replies: 1
    Last Post: 12-12-2007, 08:51 AM
  4. Inventory program
    By Nexcompac in forum New To Java
    Replies: 3
    Last Post: 07-27-2007, 06:51 PM
  5. Poi 3.0-final
    By levent in forum Java Software
    Replies: 0
    Last Post: 05-22-2007, 08:05 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •