2

我想使用 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()...为什么?谢谢!

4

1 回答 1

8

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

imageIcon.getImage().flush();
于 2013-04-08T18:04:48.933 回答