我正在netbeans中开发一个java应用程序,以保存图像图标,我应该创建一个新的图像文件夹还是已经创建了一个图像文件夹?
我在项目中创建了一个图像文件夹,将图像图标设置为JFrame,
URL iconURL = this.getClass().getResource("images/images.jpg");
ImageIcon icon = new ImageIcon(iconURL);
frame.setIconImage(icon.getImage());
错误
Uncaught error fetching image:
java.lang.NullPointerException
at sun.awt.image.URLImageSource.getConnection(URLImageSource.java:115)
at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:125)
at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:263)
at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:205)
at sun.awt.image.ImageFetcher.run(ImageFetcher.java:169)
答案 0 :(得分:3)
无论您是否创建了目录,我都怀疑这个
getResource("images\\images.jpg");
是一个问题,您应该将资源路径指定为images/images.jpg
(即正斜杠,无论平台如何。斜杠是资源分隔符,不一定是指文件系统)
我不希望NetBeans在没有明确请求的情况下为您做任何事情,因此您应该创建所需的任何文件夹/资源。
答案 1 :(得分:0)
这是Netbeans的问题之一,一旦你将图像插入你的GUI,它总是会尝试从你有图像的第一个位置查找图像。我建议创建一个图像包到保持清洁,尽量不要从包装中移动图像。
解决您现在遇到的问题,您可以将图像插回到上一个阶段我相信您的图像与您的类在同一个包中。
或尝试此方法
setIcon();
您可以像下面一样创建setIcon
public void setIcon() {
setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("images/images.jpg")));
}
}