在我的项目中,一开始我使用这种方式构造图片路径,然后将其设置到JFrame中即可以显示自定义图标
String imagePath = System.getProperty("user.dir") + "/image/icon.png";// 构造图片的路径
Image imageIcon = Toolkit.getDefaultToolkit().getImage(imagePath);
jFrame.setIconImage(imageIcon);
项目路径如下
但是在我将项目导出为JAR文件的时候,却无法显示自定义图标了,显示的仍然是咖啡杯,经过网上查找,发现如下可以解决:
String imagePath = "image/icon.png";// 构造图片的路径
Image imageIcon = Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource(imagePath));// 这种写法就可以解决导出的Jar包也能显示图标了
jFrame.setIconImage(imageIcon);
但是这样的写法有个要求,就是图片资源要放在src目录下,如下图
,经过测试,这种写法,如果还将图片放在根目录下,是行不通的。会报如下错误
at sun.awt.image.URLImageSource.getConnection(Unknown Source)