【发布时间】:2015-01-30 04:27:36
【问题描述】:
我想为我的 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());
【问题讨论】:
-
您的 JAR 文件的结构是什么,即图像在 JAR 文件中的确切位置是什么?