我想给我的JFrame设置图标。我按照以下步骤进行:
Image icon = Toolkit.getDefaultToolkit().getImage("src/images/icon.jpg");
this.setIconImage(icon);
当我从NetBeans运行这段代码时,它可以正常工作。但是当我尝试从jar文件运行这段代码时,在我的JFrame中不会显示图像。我已经尝试将图像作为资源加载:
this.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/src/images/icon.jpg")));
但是当我运行这段代码时,它出现了
NullPointerException
错误。 Uncaught error fetching image:
java.lang.NullPointerException
at sun.awt.image.URLImageSource.getConnection(URLImageSource.java:99)
at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:113)
at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:240)
at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172)
at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)
我该如何完成这项工作?
编辑: 感谢大家, 问题已通过将图像指定为
Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("images/icon.JPG"))
看起来有些奇怪,如果它能像以下这样就更好了
this.setIconImage(new ImageIcon(pathToIcon).getImage());