Help - Image icon



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;
}
}
.