小编典典

ImageIcon不会更新具有相同URL的新图像

java

我想使用JLabel(Icon)来显示来自我网站(http://xxx.xxx.xxx.xxx/java_pic/test.jpg)的图像。我有一个刷新按钮来新建一个新的JLabel和ImageIcon(以获取最新的图像)该程序成功运行…但是当我上载新图像以覆盖旧图像时(http://xxx.xxx。
xxx.xxx/java_pic/test.jpg),我按了刷新按钮…什么都没发生!我重新启动程序…现在出现新图像…为什么?当我再次新建ImageIcon时,它是否应该从网站重新加载图像?

public void refresh(){
    URL iconUri = null;
    iconUri = new URL("http://XXX.XXX.XXX.XXX/java_pic/test.jpg");
    ImageIcon imageIcon = new ImageIcon(iconUri);
    JLabel imageLabel = new JLabel(imageIcon);
    frame.add(imageLabel);
    ...
    ...
}

当我单击刷新按钮时,它将调用refresh()…为什么?谢谢!


阅读 286

收藏
2020-11-26

共1个答案

小编典典

图像被缓存。刷新以清除缓存:

imageIcon.getImage().flush();
2020-11-26