私はこれを書いていました
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();
}
}
}
}
画像の読み込みには成功しますが、画像を自動的に更新することはできません。ズームするたびに、フレームをズームして画像に変更する必要があります。画像を 1 つ変更します。
ドキュメントを読んだところ、GIF を表示するには setImageObsever が必要でしたが、うまくいきませんでした。getImageObserverによるプロキシ印刷nullのないimageIcon通常の作業
ソースコードも読んでみましたがよくわかりませんでした。
助けてください、ありがとう。