Help : ImageIcon constructor fails to load image



Hi,

I am attempting to familiarising myself with swing and have encountered a strange problem.

The problem is that when I attemp to instantiate an Imageicon with a relative filename. it fails.


e.g. - images/ - icon.gif - ImageLabelExample.class

I suspect its something simple. Can someone point out what I'm missing?

Thanks.

Code snippet ... (from www.oreilly.com/swing2)

....

public static main(String[] args){
	JLabel[] labels = new JLabel[3];
	labels[0] = makeLabel(JLabel.TOP, JLabel.LEFT);
	labels[1] = makeLabel(JLabel.TOP, JLabel.CENTER);
	labels[2] = makeLabel(JLabel.TOP, JLabel.RIGHT);
	// disable label 0
	labels[0].setEnabled(false);
	// Fails to find the image, the image is in the .jar file
	//labels[1].setDisabledIcon(new ImageIcon("images/icon.gif"));
	// This works
      labels[1].setDisabledIcon(creatImageIcon("images/icon.gif",null));
	for(int i = 0; i < labels.length; i++)
	    c.add(labels[i]);
	frame.setSize(350, 350);
	frame.setVisible(true);
}

protected static JLabel makeLabel(int vert, int horiz) {
    JLabel l = new JLabel("Smile", icon, SwingConstants.CENTER);
    l.setVerticalTextPosition(vert);
    l.setHorizontalTextPosition(horiz);
    l.setBorder(BorderFactory.createLineBorder(Color.black));
    return l;
}

// If I create the ImageIcon here, all is well
protected static ImageIcon createImageIcon(final String path, String description) {
java.net.URL imgURL = ImageLabelExample.class.getResource(path);
System.err.println( imgURL );
if (imgURL != null) {
return new ImageIcon(imgURL, description);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
.