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)请各位高手指教,谢谢
// 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)请各位高手指教,谢谢
空指针异常啊,就是说没有得到你图片的路径,你可以把你图片的路径打印出来看看。
URL url = this.getClass().getResource("a.gif"); //
a.gif 必须放到此类的同一目录下.
但是奇怪的是为什么不能指定绝对路径呢?
我指定一个
URL url = urlLoader.findResource("H:\\工作\\程序\\TrainServer2.0_20060418_MSSQL\\image\\64.jpg");
但是url为 null
照样出现上面的错误。
如何指定一个绝对路径或者改变一下图片路径呢?
要改变一下路径,比如a.gif在当前class的上级目录
URL url = this.getClass().getResource("../a.gif");
Image image = Toolkit.getDefaultToolkit().getImage(url);接受文件路径参数
要改变一下路径,比如a.gif在当前class的上级目录
URL url = this.getClass().getResource("../a.gif");
这个试过了不行啊