在jar中加载图像,代码中出错

时间:2013-05-06 23:30:33

标签: java

我想在我的项目中引用一个图像,我将打包成一个Jar文件。

此代码无效:

ImageIcon image = new ImageIcon("Images/buttonBackgroundSelected.png");

有什么想法吗?感谢

1 个答案:

答案 0 :(得分:2)

此构造函数仅在图像在JAR文件外的文件系统中可用时才有效

new ImageIcon("Images/buttonBackgroundSelected.png");

你几乎不想这样做。你可以使用:

ImageIcon imageIcon = 
   new ImageIcon(getClass().getResource("/Images/buttonBackgroundSelected.png"));

当文件夹和图像已经包含在JAR文件中时。

但是,如果加载图像有任何问题,以这种方式加载图像会无声地失败。因此,应使用ImageIO.read

Image image = 
   ImageIO.read(getClass().getResource("/Images/buttonBackgroundSelected.png"));

如果需要,可以将结果图像包裹在ImageIcon中。