尝试显示一个gif文件时java.lang.NullPointerException?

时间:2015-02-26 23:57:50

标签: java swing nullpointerexception

基本上我尝试使用网址显示.gif,但它给了我一个空指针异常,我不确定为什么因为我的网址是正确的而且没有别的我的代码存在问题(至少没有我能看到的)。

   import javax.swing.*;
   import java.net.*;
public class image {

public image() {

}

public static void main(String[] args) {


    URL url = image.class.getResource("<http://cdn.osxdaily.com/wp-content/uploads/2013/07/dancing-banana.gif>");
    ImageIcon imageIcon = new ImageIcon(url);
    JLabel label = new JLabel(imageIcon);
    JFrame frame = new JFrame();
    JPanel panel = new JPanel();
    panel.add(label);
    frame.add(panel);
    frame.setTitle("Title");  
    frame.setSize(700,500);
    frame.setResizable(false);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);


         }

    }

1 个答案:

答案 0 :(得分:5)

URL url = image.class.getResource("<http://cdn.osxdaily.com/wp-content/uploads/2013/07/dancing-banana.gif>");

不是您从Web资源引用图像的方式。您可以使用此方法加载应用程序中嵌入的资源(在应用程序类路径的上下文中)

URL url = new URL("http://cdn.osxdaily.com/wp-content/uploads/2013/07/dancing-banana.gif");

可能会更好......

请记住,下载和加载图片可能需要一些时间,您可能需要使用MediaTracker来跟踪进度,这样您就可以向用户提供反馈,并知道何时更新屏幕例如,图像一旦可用,就会出现。

在有人要求之前,我选择不使用ImageIO加载动画gif,因为这只是更多的工作(如demonstrated here - 不适合胆小的人)。在这种情况下,MediaTracker可用于检查错误