我用如下代码加载图片:
URLClassLoader urlLoader=(URLClassLoader)this.getClass().getClassLoader();
URL url=null;
Image image=null;
url=urlLoader.findResource(fileName);
image=Toolkit.getDefaultToolkit().getImage(url);
MediaTracker mediaTracker=new MediaTracker(this);
try
{
mediaTracker.addImage(image, 0);
mediaTracker.waitForID(0);
}
catch(InterruptedException e)
{
e.printStackTrace();
image=null;
}
if(mediaTracker.isErrorID(0))
image=null;
在Eclipse下运行,未打包前运行完全正常,可是打包之后就出错
Uncaught error fetching image:
请教下这是怎么回事,如何解决?
URLClassLoader urlLoader=(URLClassLoader)this.getClass().getClassLoader();
URL url=null;
Image image=null;
url=urlLoader.findResource(fileName);
image=Toolkit.getDefaultToolkit().getImage(url);
MediaTracker mediaTracker=new MediaTracker(this);
try
{
mediaTracker.addImage(image, 0);
mediaTracker.waitForID(0);
}
catch(InterruptedException e)
{
e.printStackTrace();
image=null;
}
if(mediaTracker.isErrorID(0))
image=null;
在Eclipse下运行,未打包前运行完全正常,可是打包之后就出错
Uncaught error fetching image:
请教下这是怎么回事,如何解决?
还是不行
ImageIcon icon = new ImageIcon(getClass().getClassLoader().getResource("res/about.png"));我也是在Eclipse里面正常运行,但是打包成JAR之后,就爆出找不到资源的错误。怎么解决呢?
你所用的方法跟我本质上是一样的,呵呵我的问题已解决,原来是文件名大小写的问题,打成JAR包后,原先在Eclipse环境下被忽略的大小写在JAR运行时发生问题,建议你查看下大小写,尤其是扩展名的大小写。
JButton but=new JButton(icon);但始终不显示图片,试了好多次,都没成功,楼主介绍的方法也都试过了,但还是不行
但我一直相信这应该跟图片存放路径有关,但改了又改仍没显示PS:非得把图片打成jar吗?我的最直接的就是跟写的类文件放到同一目录下面了
你直接使用文件名读取文件的话只能把文件放到类文件的同目录下,要更改图片文件路径只能使用
getClass().getSource()或getClass().getClassLoader()来读取
---------------------------------------------
看一下是不是图片文件名的大小写问题,在jar包中的文件名对大小写敏感。
感谢!诚如你所说,正是这个问题导致找不到图片。
private Image getImage(String filename){
URLClassLoader urlLoader = (URLClassLoader)getClass().getClassLoader();
java.net.URL url = null;
Image image = null;
url = urlLoader.findResource(filename);
image = Toolkit.getDefaultToolkit().getImage(url);
MediaTracker mediatracker = new MediaTracker(this);
try{
mediatracker.addImage(image, 0);
mediatracker.waitForID(0);
}
catch(InterruptedException _ex){
image = null;
}
if(mediatracker.isErrorID(0))
image = null;
return image;
}
调用getImage("image/image.png");
这样我没有遇到过问题.我是在eclipse的项目中的src目录下建的image目录,
打包后的目录结构是这样的
kkgui(目录)
kkplayer(目录)
META-INF(目录,包含MANIFEST.MF)
image(目录,存放图片)
感谢,我的做法跟你给出的一样,我的问题已经解决了,Thank you all the same
this.getClass().getClassLoader().getResource("com/ming/1.png");