public Image getImage(String filename) {
//      URLClassLoader will be used when subsequently loading classes and
//      resources.
    URLClassLoader urlLoader = (URLClassLoader)this.getClass().getClassLoader(); //类加载类加载器
    //    URLClassLoader urlLoader = (URLClassLoader)this.getClass().getClassLoader();
    URL url = urlLoader.findResource("a.gif");
    Image image = Toolkit.getDefaultToolkit().getImage(url);    MediaTracker mediatracker = new MediaTracker(this);
    try {
      System.out.println("aaaaaa");
      mediatracker.addImage(image, 0);
      System.out.println("bbbbbb");
      mediatracker.waitForID(0,5000);
      System.out.println("cccccc");      //image - 要跟踪的图像
      //id - 用于跟踪此图像的标识符
    }
    catch (InterruptedException _ex1) {
      System.out.println("Method --getImage InterruptedException _ex"+ _ex1.getMessage());
      image = null;
    }catch(Exception _ex2){
      System.out.println("Method --getImage Exception _ex2"+ _ex2.getMessage());
    } //end try catch
    if (mediatracker.isErrorID(0)) {
      image = null;
    } //end if
    return image;
  } //end getImage method
会mediatracker.waitForID(0,5000)处报下面的错误:
//      Uncaught error fetching image:
//java.lang.NullPointerException
//        at sun.awt.image.URLImageSource.getConnection(URLImageSource.java:99)
//        at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:108)
//        at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:248)
//        at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172)
//        at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)请各位高手指教,谢谢

解决方案 »

  1.   

    //java.lang.NullPointerException
    空指针异常啊,就是说没有得到你图片的路径,你可以把你图片的路径打印出来看看。
      

  2.   

    URL url = this.getClass().getResource("a.gif"); // a.gif 放到此类的同一目录下.
      

  3.   

    谢谢各位我最后也发现是图片路径的问题,
    URL url = this.getClass().getResource("a.gif"); // 
    a.gif 必须放到此类的同一目录下.
    但是奇怪的是为什么不能指定绝对路径呢?
    我指定一个
    URL url = urlLoader.findResource("H:\\工作\\程序\\TrainServer2.0_20060418_MSSQL\\image\\64.jpg");
    但是url为 null
    照样出现上面的错误。
    如何指定一个绝对路径或者改变一下图片路径呢?
      

  4.   

    好像这个函数只能使用相对路径.
    要改变一下路径,比如a.gif在当前class的上级目录
    URL url = this.getClass().getResource("../a.gif");
      

  5.   

    不行的,使用绝对路径的话直接用File就可以了
        Image image = Toolkit.getDefaultToolkit().getImage(url);接受文件路径参数
      

  6.   

    to laughsmile(海边的星空) ( ) 信誉:104 好像这个函数只能使用相对路径.
    要改变一下路径,比如a.gif在当前class的上级目录
    URL url = this.getClass().getResource("../a.gif");
    这个试过了不行啊