当前位置: 代码迷 >> Java相关 >> jar和图片的问题
  详细解决方案

jar和图片的问题

热度:107   发布时间:2007-05-17 17:34:49.0
jar和图片的问题
我写了一个程序,里面用JLabel xxL = new JLabel (new ImageIcon ("狂战士.PNG"));加了几张图片,当我把图片和class文件一起用jar打包后,在当前文件夹双击运行时,程序可以显示图片。当我将jar转移到别的文件夹后双击运行就不能显示图片了。然后我解压jar文件,那个图片释放不出来,后来我把图片的名字改为英文字母后打包再解压,却没问题。谁能告诉我这是怎么回事?如果每次都要解压jar文件才能看见程序里的图片,那我程序做好了有上百张图片,一解压有那么多图片,实在不方便,有什么办法解决这个问题吗?
搜索更多相关的解决方案: jar  狂战士  文件  JLabel  

----------------解决方案--------------------------------------------------------
和类文件放在一起
然后可以用getClass().getResource()得到它的URL

然后就可以用此URL构造图片,用图片构造ImageIcon,
----------------解决方案--------------------------------------------------------
不是太明白。。。
----------------解决方案--------------------------------------------------------
还有一个问题,就是我用QQ把我打包好的jar文件发给别人,别人双击后出现的是解压的框对话,我自己双击确可以直接运行,这是为什么?
----------------解决方案--------------------------------------------------------

版主能不能写个例子出来我看看。。。


----------------解决方案--------------------------------------------------------
对方要装JRE才行的

例子?
用我的那个方法得到URL,有了URL你想得到图片还不容易?
----------------解决方案--------------------------------------------------------

我没用过这个方法,版主写个例子谢谢。假如要把c:\sun\狂战士.PNG图片加到JLabel xxL = new JLabel();标签里面。


----------------解决方案--------------------------------------------------------
不能用绝对路径,应该用相对于CLASS文件的路径

比如,你的类叫A
public class A{
...
URL url=this.getClass().getResource("狂战士.png");
Image image=Toolkit.getDefaultToolkit().createImage(url);
ImageIcon icon=new ImageIcon(image);
JLabel xxL=new JLabel(icon);
...

}

还有,你把图片放到A.class同一个目录下,就可以了,以后打包的时候,也是一样,把它一起打进去,也可以读取了
----------------解决方案--------------------------------------------------------

明白了,谢谢版主


----------------解决方案--------------------------------------------------------
斑竹,超强啊,我也学了一段时间了,可是还不得窍门啊
----------------解决方案--------------------------------------------------------
  相关解决方案