jlabel 不能连续两次set,在jLabel上使用setIcon会重复旧图像

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.

解决方案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 );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值