我以前寫這顯示gif動畫
JLabel label=new JLable(URL);
frame.getContentPane().add(label);
,並與gif動畫形象工程
然而,當我想用一個imageProxy加載GIF格式的互聯網 它不起作用。
我imageProxy是這個
public class ImageProxy implements Icon{
ImageIcon imageIcon;
URL imageURL;
Thread retrievalThread;
boolean retrieving =false;
public ImageProxy(URL url){
imageURL = url;
}
public int getIconHeight() {skip}
public int getIconWidth() {skip}
@Override
public void paintIcon(final Component c, Graphics g, int x, int y) {
System.out.println("paint");
if(imageIcon !=null){
imageIcon.paintIcon(c, g, x, y);
}else{
g.drawString("Loading image", x+10, y+80);
if(!retrieving){
retrieving =true;
retrievalThread = new Thread(new Runnable(){
public void run(){
try{
imageIcon = new ImageIcon(imageURL);
c.repaint();
}catch(Exception e){
e.printStackTrace();
}
}
});
retrievalThread.start();
}
}
}
}
它可以成功加載圖像,但它不會自動刷新其圖像 我有變焦恰克圖像幀, 每次我放大它的時候恰克一個畫面
我閱讀文檔, 它說的是,在其他顯示GIF我需要setImageObsever 我試過了,也不行。和imageIcon正常工作,沒有代理打印null getImageObserver
我也嘗試讀取源代碼,但我並不真正瞭解。
請幫助我,謝謝。