Re: Help : ImageIcon constructor fails to load image
- From: "Rhino" <no.offline.contact.please@xxxxxxxxxx>
- Date: Sun, 30 Oct 2005 12:02:44 -0500
"AlecB" <nobodyhere@xxxxxxxxxx> wrote in message
news:dk2qel$ras$1@xxxxxxxxxxxxxxxxxx
> 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)
>
This link produces a '404' error when I attempt to view the page. Perhaps
the site is down temporarily?
> ...
>
> 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;
> }
> }
Basically, the technique for getting an image out of a file in the
filesystem is slightly different than the technique for getting a jar entry
out of a jar in the classpath.
The code in your 'createImageIcon()' method is correct for getting a jar
entry out of a jar in the classpath. If your image is indeed in a jar on the
classpath, then you have nothing further to do.
However, if you want to get your image from a relative location within your
local filesystem, you need to do things just a little differently, something
like this (untested!):
String fileLocation = "images/icon.gif"; //location of file expressed as a
String
File imageFile = new File(fileLocation); //create a File reference to that
location
URL imageFileUrl = imageFile.toUR(); //create a URL pointing to the file
labels[1].setDisabledIcon(new ImageIcon(imageFileUrl)); //get the image from
its URL
Rhino
.
- Follow-Ups:
- References:
- Help : ImageIcon constructor fails to load image
- From: AlecB
- Help : ImageIcon constructor fails to load image
- Prev by Date: Re: 2nd time around with help for java
- Next by Date: thanks guys
- Previous by thread: Help : ImageIcon constructor fails to load image
- Next by thread: Re: Help : ImageIcon constructor fails to load image
- Index(es):
Relevant Pages
|