0

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

此代码不起作用:

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

有任何想法吗?谢谢

4

1 回答 1

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

于 2013-05-06T23:33:19.263 回答