Q:

Use of setIcon on jLabel repeats old image

I'm attempting to display an image that was downloaded from a website, with the use of setIcon and a jLabel 
jLabel5.setIcon(new ImageIcon("image.png"));

At the start of the program, the image doesn't exist, it gets downloaded, and after that displayed, with no problems. But if it changes, even if it downloads a newer version of the image, it will display the old one, as if it had a cache of it or something.
Does someone know why this happens? How to get a workaround with or without this method?
I have also tried to do the following to see if it could help, with no success:
jLabel5.setIcon(null);
jLabel5.setIcon(new ImageIcon("image.png"));

It would display nothing and then the same old image again.

A:

it will display the old one, as if it had a cache of it or something.

Yep, caching is the problem. Here are a couple of options:
//  This works using ImageIO

imageLabel.setIcon( new ImageIcon(ImageIO.read( new File(imageName) ) ) );

//  Or you can flush the image

ImageIcon icon = new ImageIcon(imageName);
icon.getImage().flush();
imageLabel.setIcon( icon );

