954,536 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Please Help! I need to change this from a paperclip logo to a book logo

My code runs fine, but I keep getting this error message: I would like to change this logo from a paperclip logo to a book logo, my code is under the error. Can you tell me what's wrong and how to change it to a book logo?
Uncaught error fetching image:
java.lang.NullPointerException
at sun.awt.image.URLImageSource.getConnection(URLImageSource.java:99)
at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:113)
at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.j
ava:240)
at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172)
at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)


import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.FlowLayout;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.Dimension;
import java.net.URL;


class Inventory {

String number; // item number
String name; // item name
int quantity; // quanity of item
double price; // item price

public Inventory(String Number, String Name, int Quantity, double Price)
{
number = Number;
name = Name;
quantity = Quantity;
price = Price;
}
//Method set & get product name
public void setName(String Name)
{
name = Name;
}
public String getName()
{
return name;
}

//Method set & get product number
public void setNumber(String Number)
{
number = Number;
}
public String getNumber()
{
return number;
}


//Method set & get quantity of product
public void setQuantity(int Quantity)
{
quantity = Quantity;
}
public int getQuantity()
{
return quantity;
}


//Method set & get product price
public void setPrice(double Price)
{
price = Price;
}
public double getPrice()
{
return price;
}

//Method calculate inventory value
public double getInventoryValue()
{
return price * quantity;
}


public String toString()
{
return "Item Name: "+name + "\nItem Number: "+number+"\nItem Price: $"+price+"\nQuantity in Stock: "+quantity + "\nInventory Value: $"+getInventoryValue();
}
} // end Inventory Class

class Product extends Inventory {

String brand; // Subclass to add type of book
double restockFee; // Restock fee added to the inventory value

// constructor initializes inventory information
public Product(String brand, double restockFee, String Number, String Name, int Quantity, double Price)
{
super(Number, Name, Quantity, Price);
this.brand = brand;
this.restockFee = restockFee;
}

public Product(String brand, String Number, String Name, int Quantity, double Price)
{
super(Number, Name, Quantity, Price);
this.brand = brand;
// default 5% restocking fee
this.restockFee = 0.05;
}

public void setBrandName(String brand)
{
brand = brand;
}
public String getBrandName()
{
return brand;
}


public double getRestockFee() // Figures out restocking fee
{
return super.getInventoryValue() * restockFee;
}

public double getInventoryValue() // Total inventory value plus restocking fee
{
return super.getInventoryValue() + (super.getInventoryValue() * restockFee);
}

public String toString()
{
StringBuffer sb = new StringBuffer ("\nBrand: ").append(brand).append("\n");
sb.append (super.toString());


return sb.toString();
}

} // End Product Class


class Inventory2
{

// store book inventory
Product[] inventory;

// store number of books added to inventory
int number_of_products_in_inventory = 0;

// create an inventory capable of holding maximum_number_of_products different products
public Inventory2(int maximum_number_of_products)
{
inventory = new Product[maximum_number_of_products];
}

// add the books to the end of the inventory
public void addProduct(Product products_to_add_to_inventory)
{
inventory[number_of_products_in_inventory] = products_to_add_to_inventory;
number_of_products_in_inventory++;
}
// return the number of products in the inventory
public Product getProduct(int index)
{
return inventory[index];
}

// return number of products in inventory
public int getSize()
{
return number_of_products_in_inventory;
}

// run through all the books in the inventory, and add up their value.
// this includes the restocking fee
public double getTotalValueOfAllInventory()
{
double tot = 0.00;

for(int i = 0; i < number_of_products_in_inventory; i++)
{
tot += inventory[i].getInventoryValue();
}
return tot;
}

// sort the books in the inventory by name
public void sortInventory2()
{
// Sorting Inventory Information
for(int j = 0; j < number_of_products_in_inventory - 1; j++)
{
for(int k = 0; k < number_of_products_in_inventory - 1; k++)
{
if(inventory[k].getName().compareToIgnoreCase(inventory[k+1].getName()) > 0)
{
Product temp = inventory[k];
inventory[k] = inventory[k+1];
inventory[k+1] = temp;
}
}
}
}
} // End Inventory2 class

public class Inventory5 extends JFrame
{

//create inventory for the books
Inventory2 ProductInventory2;

// index in the supply inventory of the currently displayed books. starts at 0, goes to the number of books in the inventory - 1
int index = 0;


// GUI elements to display currently selected books information
private final JLabel nameLabel = new JLabel(" Product Name: ");
private JTextField nameText;

private final JLabel numberLabel = new JLabel(" Product Number: ");
private JTextField numberText;

private final JLabel brandLabel = new JLabel(" Brand: ");
private JTextField brandText;

private final JLabel priceLabel = new JLabel(" Price: ");
private JTextField priceText;

private final JLabel quantityLabel = new JLabel(" Quantity: ");
private JTextField quantityText;

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

private final JLabel restockFeeLabel = new JLabel(" Restocking Fee: ");
private JTextField restockFeeText;

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


// go to the next item in the list
private Action nextAction = new AbstractAction("Next") {
public void actionPerformed(ActionEvent evt) {

// check to see if there is a next book
if (index == ProductInventory2.getSize() - 1) {
// if we're at the book in the list, then we can't go any further
// go to front of list
index = 0;
} else {
index++;
}

repaint();
}
};
private JButton nextButton = new JButton(nextAction);

// go to previous book in the list
private Action previousAction = new AbstractAction("Previous") {
public void actionPerformed(ActionEvent evt) {

// if we're at the first book, then go to the last book in the list
if (index == 0) {
index = ProductInventory2.getSize() - 1;
} else {
index--;
}

repaint();
}
};
private JButton previousButton = new JButton(previousAction);

// go to the first book in list
private Action firstAction = new AbstractAction("First") {
public void actionPerformed(ActionEvent evt) {

index = 0;

repaint();
}
};
private JButton firstButton = new JButton(firstAction);

// go to the last book in list
private Action lastAction = new AbstractAction("Last") {
public void actionPerformed(ActionEvent evt) {

index = ProductInventory2.getSize() - 1;

repaint();
}
};
private JButton lastButton = new JButton(lastAction);


public void addProductToInventory2(Product temp)
{
ProductInventory2.addProduct(temp);
repaint();
}
public void sortProductInventory2()
{
ProductInventory2.sortInventory2();
repaint();
}

public Inventory5(int maximum_number_of_products)
{
// create the inventory object that will hold the book information
ProductInventory2 = new Inventory2(maximum_number_of_products);

// setup the GUI
// add the next book button to the top of the GUI
// setup panel to collect buttons in FlowLayout
JPanel buttonPanel = new JPanel();
buttonPanel.add(firstButton);
buttonPanel.add(previousButton);
buttonPanel.add(nextButton);
buttonPanel.add(lastButton);
getContentPane().add(buttonPanel, BorderLayout.NORTH);


// setup logo for GUI
URL url = this.getClass().getResource("logo.jpg");
Image img = Toolkit.getDefaultToolkit().getImage(url);
// scale image to fit in GUI
Image scaledImage = img.getScaledInstance(205, 300, Image.SCALE_AREA_AVERAGING);
// create JLabel with image as the label's Icon
Icon logoIcon = new ImageIcon(scaledImage);
JLabel companyLogoLabel = new JLabel(logoIcon);

// add logo to GUI
getContentPane().add(companyLogoLabel, BorderLayout.WEST);

// book information
// setup a panel to collect all the components.
JPanel centerPanel = new JPanel(new GridLayout(8, 2, 0, 4));

centerPanel.add(nameLabel);
nameText = new JTextField("");
nameText.setEditable(false);
centerPanel.add(nameText);

centerPanel.add(numberLabel);
numberText = new JTextField("");
numberText.setEditable(false);
centerPanel.add(numberText);

centerPanel.add(brandLabel);
brandText = new JTextField("");
brandText.setEditable(false);
centerPanel.add(brandText);

centerPanel.add(priceLabel);
priceText = new JTextField("");
priceText.setEditable(false);
centerPanel.add(priceText);

centerPanel.add(quantityLabel);
quantityText = new JTextField("");
quantityText.setEditable(false);
centerPanel.add(quantityText);

centerPanel.add(valueLabel);
valueText = new JTextField("");
valueText.setEditable(false);
centerPanel.add(valueText);

centerPanel.add(restockFeeLabel);
restockFeeText = new JTextField("");
restockFeeText.setEditable(false);
centerPanel.add(restockFeeText);

// add inventory information to panel
centerPanel.add(totalValueLabel);
totalValueText = new JLabel("");
centerPanel.add(totalValueText);

// add the panel to the center of the GUI's window
getContentPane().add(centerPanel, BorderLayout.CENTER);

repaint();
}


// repaint the GUI with new Product information
public void repaint() {

Product temp = ProductInventory2.getProduct(index);

if (temp != null) {
nameText.setText( temp.getName() );
numberText.setText( ""+temp.getNumber() );
brandText.setText( temp.getBrandName() );
priceText.setText( String.format("$%.2f", temp.getPrice()) );
quantityText.setText( ""+temp.getQuantity() );
valueText.setText( String.format("$%.2f", temp.getPrice() * temp.getQuantity() ) );
restockFeeText.setText( String.format("$%.2f", temp.getRestockFee() ) );
}

totalValueText.setText( String.format("$%.2f", ProductInventory2.getTotalValueOfAllInventory() ) );

}


public static void main(String args[])
{

// create new GUI object that will hold a maximum of 6 books
Inventory5 Product_GUI = new Inventory5 (6);

// Add the office supplies to the inventory
Product_GUI.addProductToInventory2(new Product("HardBack", "1","Harry Potter" , 27, 15.99));
Product_GUI.addProductToInventory2(new Product("HardBack", "2","Eragon" , 15, 10.99));
Product_GUI.addProductToInventory2(new Product("SoftBack", "3","Letters to my Daughter", 14, 24.99));
Product_GUI.addProductToInventory2(new Product("HardBack", "4","Twlight" , 20, 22.99));
Product_GUI.addProductToInventory2(new Product("SoftBack", "5", "Eldest", 35, 11.99));
Product_GUI.addProductToInventory2(new Product("SoftBack", "6", "The Da Vinci Code", 24, 9.00));


// sort the books by name
Product_GUI.sortProductInventory2();

// Get GUI to show on screen
Product_GUI.setDefaultCloseOperation( EXIT_ON_CLOSE );
Product_GUI.pack();
Product_GUI.setSize(700, 350);
Product_GUI.setResizable(false);
Product_GUI.setLocationRelativeTo( null );
Product_GUI.setVisible(true);

return;

}
} // End Inventory5 class

keekee
Newbie Poster
7 posts since Jul 2009
Reputation Points: 10
Solved Threads: 0
 

It probably means that the image you're trying to load doesn't exist. To change which image you're showing you need only change the image file you're loading, of course.

masijade
Industrious Poster
Moderator
4,253 posts since Feb 2006
Reputation Points: 1,471
Solved Threads: 494
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You