我正在尝试为我的 Java 应用程序设置一个图标,图像位于 asset/images 中。
这样设置:
java.net.URL url = ClassLoader.getSystemResource("assets/images/ravens.jpg");
Toolkit kit = Toolkit.getDefaultToolkit();
Image img = kit.createImage(url);
frame.setIconImage(img);
我收到的错误:
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)
如有任何帮助,我们将不胜感激!
最佳答案
有一种更好的方法可以通过使用 BufferedImage
来执行此操作,而不会出现 NullPointerException
。我已经测试过这个并且它有效。将您的代码替换为:
BufferedImage img = null;
try {
img = ImageIO.read(new File("assets/images/ravens.jpg"));
} catch (IOException e) {}
frame.setIconImage(img);
关于Java:尝试设置应用程序图标时为空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25799115/