img = toolkit.getImage(url);
我用的以上代码获取网络图片,在panel上显示。可是无法显示出来。
图片此时不为空。请高手指点一二,如何直接获取网络图片来显示。(不存储到本地)

解决方案 »

  1.   

    public javax.swing.ImageIcon(java.net.URL);
      

  2.   

    lz的不行。。
    代码如下:
    package test;import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.Toolkit;
    import java.awt.image.ImageObserver;
    import java.net.URL;import javax.swing.ImageIcon;
    import javax.swing.JPanel;public class ImagePanel extends JPanel implements ImageObserver{
    private Image img = null;
    public ImagePanel() {
    Toolkit toolkit = Toolkit.getDefaultToolkit();   
    try {
    // URL url = new URL("http://pub2.camera.trafficland.com/image/live.jpg?system=skyline&webid=200147&cache=false&random=0.8090519925403452");
    URL url = new URL("http://www.baidu.com/img/baidu_logo.gif");
    // URL url = this.getClass().getResource("/test/1.jpg");
    ImageIcon icon = new ImageIcon(url);
    img = icon.getImage();
    // img = toolkit.getImage(url);
    // int index = 0;
    // while(imageUpdate(img,ImageObserver.WIDTH|ImageObserver.HEIGHT|ImageObserver.PROPERTIES,0,0,15,15)){
    // img = toolkit.getImage(url);
    // System.out.println(++index);
    // }
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }  
    } @Override
    protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    System.out.println("sssssss");
    g.drawImage(img, 0, 0, this);

    } public void setImg(Image img) {
    this.img = img;
    }

    @Override
    public boolean imageUpdate(Image img, int infoflags, int x, int y, int w, int h) {
    return super.imageUpdate(img, infoflags, x, y, w, h);
    }

    }