Thanks!
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 products information in the
GUI.
Expand|Select|Wrap|Line Numbers
- import java.awt.BorderLayout;
- import java.awt.Dimension;
- import java.awt.FlowLayout;
- import java.awt.HeadlessException;
- import java.awt.Image;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.ObjectOutputStream;
- import java.io.Serializable;
- import javax.swing.ImageIcon;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JOptionPane;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.JTextArea;
- public class InventoryGUI extends JFrame implements ActionListener,Serializable
- {
- private JTextArea textArea;
- private JButton first,
- next,
- previous,
- last,
- add,
- modify,
- delete,
- save,
- search,
- exit;
- JLabel imageLabel;
- private static Inventory inv = new Inventory();
- /**
- * @param arg0
- * @throws HeadlessException
- */
- public InventoryGUI( String arg0 ) throws HeadlessException
- {
- super( "Inventory GUI" );
- textArea = new JTextArea( 250,30 );
- JScrollPane scrollPane = new JScrollPane( textArea );
- textArea.setEditable( false );
- scrollPane.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS );
- scrollPane.setPreferredSize( new Dimension( 250, 250 ) );
- JPanel cp = new JPanel();
- cp.setSize( 250, 40 );
- cp.setLayout( new BorderLayout() );
- cp.add( scrollPane,BorderLayout.CENTER );
- JPanel buttonPaenl = new JPanel();
- JPanel buttonPaenl1 = new JPanel();
- first = new JButton( "First" );
- first.addActionListener( this );
- search = new JButton( "Search" );
- search.addActionListener( this );
- next = new JButton( "Next" );
- next.addActionListener( this );
- previous = new JButton( "Previous" );
- previous.addActionListener( this );
- last = new JButton( "Last" );
- last.addActionListener( this );
- add = new JButton( "Add" );
- add.addActionListener( this );
- modify = new JButton( "Modify" );
- modify.addActionListener( this );
- delete = new JButton( "Delete" );
- delete.addActionListener( this );
- save = new JButton( "Save" );
- save.addActionListener( this );
- exit = new JButton( "Exit" );
- exit.addActionListener( this );
- buttonPaenl.setLayout( new FlowLayout() );
- buttonPaenl1.setLayout( new FlowLayout() );
- buttonPaenl.add( first );
- buttonPaenl.add( previous );
- buttonPaenl.add( next );
- buttonPaenl.add( last );
- buttonPaenl1.add( add );
- buttonPaenl1.add( modify );
- buttonPaenl1.add( delete );
- buttonPaenl1.add( save );
- buttonPaenl1.add( search );
- buttonPaenl1.add( exit );
- cp.add( buttonPaenl,BorderLayout.SOUTH );
- cp.add( buttonPaenl1,BorderLayout.NORTH );
- ImageIcon icon = new ImageIcon( "C:\\data\\logo.gif","a pretty but meaningless splat" );
- imageLabel = new JLabel( "Xavier", icon, JLabel.CENTER );
- cp.add( imageLabel,BorderLayout.EAST );
- this.setContentPane( cp );
- this.setTitle( " Week Nine Final Project: Inventory Program Part Six - Transformers Autobot Inventory ( More Than Meets the Eye o_0?! ) " );
- this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
- this.textArea.setText(inv.getFirst());
- this.setSize(400, 400);
- this.pack();
- this.setVisible( true );
- }
- @Override
- public void actionPerformed( ActionEvent e )
- {
- // TODO Auto-generated method stub
- if( e.getActionCommand().equals( "First" ) )
- {
- textArea.setText( inv.getFirst() );
- }
- if( e.getActionCommand().equals( "Next" ) )
- {
- textArea.setText(inv.getNext());
- }
- if( e.getActionCommand().equals( "Previous" ) )
- {
- textArea.setText( inv.getPrevious() );
- }
- if( e.getActionCommand().equals( "Last" ) )
- {
- textArea.setText(inv.getLast());
- }
- if( e.getActionCommand().equals( "Save" ) )
- {
- save();
- }
- if( e.getActionCommand().equals( "Exit" ) )
- {
- System.exit(0);
- }
- if( e.getActionCommand().equals( "Add" ) )
- {
- InventoryDialogue id = new InventoryDialogue( true," Add a new Inventory " );
- }
- if( e.getActionCommand().equals( "Modify" ) )
- {
- InventoryDialogue id = new InventoryDialogue( false," Modify Inventory " );
- }
- if( e.getActionCommand().equals( "Search" ) )
- {
- String s = JOptionPane.showInputDialog( null, " Enter Product Name ",null, 1 );
- s = inv.Search(s);
- if( s == null )
- {
- JOptionPane.showMessageDialog( this, " No Results Found " ) ;
- }
- else textArea.setText( s );
- if( e.getActionCommand().equals( "Delete" ) )
- {
- inv.getproducts().remove( inv.index );
- }
- }
- }
- public void save()
- {
- File f = new File( "C:\\data\\inventory.dat" );
- try
- {
- FileOutputStream out = new FileOutputStream( f );
- try
- {
- ObjectOutputStream objectOut = new ObjectOutputStream( out );
- objectOut.writeObject( inv );
- }
- catch (IOException e)
- {
- // TODO Auto-generated catch block
- JOptionPane.showMessageDialog( null, e.getMessage() );
- e.printStackTrace();
- }
- }
- catch ( FileNotFoundException e )
- {
- // TODO Auto-generated catch block
- JOptionPane.showMessageDialog( null, e.getMessage() );
- e.printStackTrace();
- }
- }
- public static Inventory getInv()
- {
- return inv;
- }
- public static void setInv( Inventory inv )
- {
- InventoryGUI.inv = inv;
- }
- /**
- * @param args
- */
- public static void main( String[] args )
- {
- InventoryGUI inventory = new InventoryGUI( "Inventory" );
- }
- }
Expand|Select|Wrap|Line Numbers
- import java.awt.BorderLayout;
- import java.awt.FlowLayout;
- import java.awt.LayoutManager;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.BoxLayout;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JOptionPane;
- import javax.swing.JPanel;
- import javax.swing.JTextField;
- public class InventoryDialogue extends JFrame implements ActionListener
- {
- private boolean status = false; //false is for modify
- JTextField nameTextField,
- unitTextField,
- priceTextField;
- JLabel nameLabel,
- unitLabel,
- priceLabel;
- JPanel TextFields,
- buttons;
- JButton modify,
- add;
- public InventoryDialogue( Boolean stat, String title )
- {
- super( title );
- status = stat;
- JPanel but = new JPanel();
- modify = new JButton( "Modify" );
- modify.addActionListener( this );
- add = new JButton( "Add" );
- add.addActionListener( this );
- but.add( add );
- but.add( modify );
- if( status == false )
- {
- add.setVisible( false );
- }
- else
- {
- modify.setVisible( false );
- }
- nameTextField = new JTextField( "", 20 );
- unitTextField = new JTextField( "", 5 );
- priceTextField = new JTextField( "" , 5 );
- nameLabel = new JLabel( "Name" );
- unitLabel = new JLabel( "Units" );
- priceLabel = new JLabel( "Price per Unit" );
- JPanel p = new JPanel();
- p.setLayout( new FlowLayout() );
- p.add( nameLabel );
- p.add( nameTextField );
- p.add( unitLabel );
- p.add( unitTextField );
- p.add( priceLabel );
- p.add( priceTextField );
- JPanel cp = new JPanel();
- cp.setLayout( new BorderLayout() );
- cp.add( p, BorderLayout.CENTER );
- cp.add( but, BorderLayout.EAST );
- this.setContentPane( cp );
- this.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );
- this.pack();
- this.setVisible( true );
- }
- @Override
- public void actionPerformed( ActionEvent arg0 )
- {
- if( arg0.getActionCommand().equals( "Add" ) )
- {
- String name;
- int units;
- Double price;
- name = nameTextField.getText();
- try
- {
- units = Integer.parseInt( unitTextField.getText() );
- }
- catch ( NumberFormatException e )
- {
- JOptionPane.showMessageDialog( null, e.getMessage() );
- e.printStackTrace();
- return;
- }
- try
- {
- price = Double.parseDouble( priceTextField.getText() );
- }
- catch ( NumberFormatException e )
- {
- // TODO Auto-generated catch block
- JOptionPane.showMessageDialog( null, e.getMessage() );
- e.printStackTrace();
- return;
- }
- InventoryGUI.getInv().getproducts().add( new ProductModified( name, InventoryGUI.getInv().products.size(),
- units,price ) );
- this.dispose();
- }
- if( arg0.getActionCommand().equals( "Modify" ) )
- {
- String name;
- int units;
- Double price;
- name = nameTextField.getText();
- try
- {
- units = Integer.parseInt( unitTextField.getText() );
- }
- catch ( NumberFormatException e )
- {
- JOptionPane.showMessageDialog( null,"Please Enter Valid Integers" );
- e.printStackTrace();
- return;
- }
- try
- {
- price = Double.parseDouble( priceTextField.getText() );
- }
- catch ( NumberFormatException e )
- {
- // TODO Auto-generated catch block
- JOptionPane.showMessageDialog( null,"Please Enter Valid Price" );
- //e.printStackTrace();
- return;
- }
- InventoryGUI.getInv().getproducts().set( InventoryGUI.getInv().index,
- new ProductModified( name, InventoryGUI.getInv().index, units, price ) );
- this.dispose();
- }
- }
- public static void main( String args[] )
- {
- InventoryDialogue idf = new InventoryDialogue( true,"cc" );
- }
- }
Expand|Select|Wrap|Line Numbers
- import java.text.Collator;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.Locale;
- public class Inventory
- {
- private String inventoryName; // name of inventory
- public String restockRate; // restock rate percentage
- public double totalRestock;
- public static int index;
- public ArrayList < ProductModified > products = new ArrayList < ProductModified > ();
- public Inventory()
- {
- products.add( new ProductModified( "No Sale Bot", 0, 1, 0.00 ) );
- products.add( new ProductModified( "Optimus Prime", 7, 52, 160.00 ) );
- products.add( new ProductModified( "BumbleeBee", 16, 61, 97.00 ) );
- products.add( new ProductModified( "Ironhide", 25, 106, 88.00 ) );
- products.add( new ProductModified( "Ratchet", 34, 125, 79.00 ) );
- products.add( new ProductModified( "Jazz", 0, 124, 70.00 ) );
- index = 0;
- }
- public void sort()
- {
- Locale loc = Locale.ENGLISH;
- ProductModified Temp;
- Collator col = Collator.getInstance( loc );
- for ( int i = 0; i < products.size(); i++ )
- {
- for ( int j = i + 1; j < products.size(); j++ )
- {
- if( col.compare( products.get( i ).getAutobotName(), products.get( j ).getAutobotName() ) > 0 )
- {
- Temp = products.get( i );
- products.set( i, products.get( j ) );
- products.set( j, Temp );
- }
- }
- }
- }
- public String getInventoryName()
- {
- return inventoryName;
- }
- public void setInventoryName( String inventoryName )
- {
- this.inventoryName = inventoryName;
- }
- public String getRestockRate()
- {
- return restockRate;
- }
- public void setRestockRate( String restockRate )
- {
- this.restockRate = restockRate;
- }
- public double getTotalRestock()
- {
- return totalRestock;
- }
- public void setTotalRestock( double totalRestock )
- {
- this.totalRestock = totalRestock;
- }
- public ArrayList < ProductModified > getproducts()
- {
- return products;
- }
- public void seproducts( ArrayList < ProductModified > products)
- {
- this.products = products;
- }
- public String toString()
- {
- String transformersSub = new String(" ");
- transformersSub = "Welcome to the\n" + getInventoryName() + "!\n\n";
- transformersSub = transformersSub + "Below is the available inventory:\n\n";
- transformersSub = transformersSub + "The restock interest rate is at " + getRestockRate() + ".\n\n";
- transformersSub = transformersSub + "Index\tProductModified #\t\t\tName\t\tUnits\t\tPrice\t\t";
- transformersSub = transformersSub + "Unit Restock Value\t";
- transformersSub = transformersSub + "Stock Value\t\t";
- transformersSub = transformersSub + "Total ProductModified Restock\n";
- Iterator < ProductModified > i = this.getproducts().iterator();
- while(i.hasNext())
- {
- transformersSub = transformersSub + i.next();
- }
- return transformersSub;
- }
- public Double getTotal()
- {
- Double Total = 0.0;
- ProductModified p;
- Iterator < ProductModified > i = products.iterator();
- while( i.hasNext() )
- {
- p = i.next();
- Total = Total + p.getPrice() * p.getUnit();
- }
- return Total;
- }
- public String processOutPut( ProductModified p )
- {
- String out = "Welcome to the Transformers Autobot Toy Inventory\n\nTotal Inventory = "
- + this.getTotal() + "\nRestocking Fee = 5%"
- + "\n\nItem #\tName\tUnit\tPrice\tUnit Restock Value"
- + p;
- return out;
- }
- public String getFirst()
- {
- index = 0;
- return processOutPut( products.get(0) );
- }
- public String getLast()
- {
- index = products.size() - 1;
- return processOutPut( products.get( products.size() - 1 ) );
- }
- public String getNext()
- {
- if( index == products.size() - 1 )
- {
- getFirst();
- return getFirst();
- }
- else
- {
- index++;
- return processOutPut( products.get( index ) );
- }
- }
- public String getPrevious()
- {
- if( index == 0 )
- {
- return getLast();
- }
- else
- return processOutPut(products.get(--index));
- }
- public String Search( String Search )
- {
- Iterator < ProductModified > i = products.iterator();
- String te = null;
- ProductModified p;
- while( i.hasNext() )
- {
- p = i.next();
- if( p.getAutobotName().equals( Search ) )
- {
- te = processOutPut( p );
- }
- }
- return te;
- }
- }
Expand|Select|Wrap|Line Numbers
- import static java.lang.System.out;
- //class declaration for TransformersProduct
- public class Product
- {
- public String autobotName; // array of autobot toy names
- public int productNumber; // product # array ID for product
- public int unit; // array of autobot toy units
- public double price; // array of autobot prices
- public double inventoryValue;
- /**
- * @param autobotName
- * @param productNumber
- * @param unit
- * @param price
- */
- public Product( String autobotName, int productNumber, int unit,
- double price )
- {
- super();
- this.autobotName = autobotName;
- this.productNumber = productNumber;
- this.unit = unit;
- this.price = price;
- }
- public String getAutobotName()
- {
- return autobotName;
- }
- public void setAutobotName( String autobotName )
- {
- this.autobotName = autobotName;
- }
- public int getProductNumber()
- {
- return productNumber;
- }
- public void setProductNumber( int productNumber )
- {
- this.productNumber = productNumber;
- }
- public int getUnit()
- {
- return unit;
- }
- public void setUnit( int unit )
- {
- this.unit = unit;
- }
- public double getPrice()
- {
- return price;
- }
- public void setPrice( double price )
- {
- this.price = price;
- }
- public double getInventoryValue()
- {
- return inventoryValue;
- }
- public Double inventoryValue()
- {
- return this.getPrice() * this.getUnit();
- }
- public String toString()
- {
- return "\n"+this.productNumber+"\t"+this.autobotName+"\t"+this.unit +"\t"+this.price+ "\t";
- }
- }
Expand|Select|Wrap|Line Numbers
- public class ProductModified extends Product
- {
- public ProductModified( String autobotName, int productNumber, int unit,
- double price )
- {
- super( autobotName, productNumber, unit, price );
- this.inventoryValue = this.inventoryValue();
- // TODO Auto-generated constructor stub
- }
- public Double inventoryValue()
- {
- return this.getUnit() * this.getPrice() + this.getUnit() * this.getPrice() * 0.05;
- }
- public String toString()
- {
- return "\n" + this.productNumber + "\t" + this.autobotName
- + "\t" + this.unit + "\t" + this.price + "\t"
- + this.getInventoryValue();
- }
- }