0

I am trying to build a toolbar for this math practice program that I wrote. I am trying to get an image from a folder called images. It will not allow me to. It gives me a NullPointerException, I will mark the lines with * where the Exception points to.

public JButton makeNavigationButton( String imageName, String toolTipText ) {
   String imgLocation = "images/" + imageName + ".jpg";
   URL imageURL = MathPractice.class.getResource(imgLocation);
   JButton button = new JButton();
   button.setToolTipText(toolTipText);
   //button.addActionListener(this);
   button.setIcon( new ImageIcon( imageURL )); //************* NPE here
   return button;
}
Barett
  • 5,826
  • 6
  • 51
  • 55
user278153
  • 75
  • 8

1 Answers1

2

The documentation of Class.getResource() says:

Finds a resource with a given name. The rules for searching resources associated with a given class are implemented by the defining class loader of the class. This method delegates to this object's class loader. If this object was loaded by the bootstrap class loader, the method delegates to ClassLoader.getSystemResource(java.lang.String).

Before delegation, an absolute resource name is constructed from the given resource name using this algorithm:

If the name begins with a '/' ('\u002f'), then the absolute name of the resource is the portion of the name following the '/'. Otherwise, the absolute name is of the following form:

    modified_package_name/name 

Where the modified_package_name is the package name of this object with '/' substituted for '.' ('\u002e').

With Eclipse, if the directory images is in bin, it will be found. Move images into src/images.

Aubin
  • 14,617
  • 9
  • 61
  • 84