我有一个使用Swing的JFrame作为主GUI单元的Java应用程序。我通过setIconImage()为它设置了图标。当我在NetBeans中运行此程序时,一切正常,并显示框架的图标。但是当我编译它并尝试运行jar文件(使用JRE7)时,应用程序具有Duke的标准图标。在NetBeans之外运行应用程序时如何更改该图标?
UPD: 好的,这是代码:
public static void main(String[] args) throws IOException{
URL imgUrl = Polygon.class.getResource("/imgs/icon.png");
Image img = ImageIO.read(imgUrl);
JFrame f = new JFrame();
f.setSize(new Dimension(500, 500));
f.setIconImage(img);
f.setVisible(true);
}
UPD2: 我已将此行添加到代码的末尾:
JOptionPane.showMessageDialog(null, new ImageIcon(img));
图片一切都很好!加载!但它没有显示为图标。
答案 0 :(得分:2)
当您从Netbeans内部运行应用程序时,项目文件夹中的文件可用,但如果您自己运行已编译的JAR,则可能不会。
请阅读此example(请注意注释)以正确加载图片。
答案 1 :(得分:0)
试试getClass().getResource("imgs/icon.png")
。这个对我有用。注意绝对路径和相对路径之间的差异。您可能不需要前导/
。