2013-04-08 80 views
2

我想使用JLabel(Icon)顯示來自我的網站(http://xxx.xxx.xxx.xxx/java_pic/test.jpg)的圖像。 我有一個新的按鈕,以新的JLabel和ImageIcon(爲了獲得最新的圖像) 程序運行成功...但是當我上傳一個新的圖像覆蓋舊的(http://xxx.xxx.xxx.xxx/java_pic/test.jpg),我按刷新按鈕...什麼也沒有發生 我重新啓動了我的程序...並且新圖像現在顯示...爲什麼? 當我再次新建一個ImageIcon時,它不應該從網站上重新加載圖像嗎?ImageIcon不會更新具有相同URL的新圖像

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()...爲什麼? 謝謝!

回答

9

圖像被緩存。清除緩存:

imageIcon.getImage().flush(); 
+0

非常感謝!這工作!另一個問題是,我可以在我「新建JLabel(imageIcon)」之後立即刷新imageIcon;「? – 2013-04-08 18:17:11