JFrame的图标无法显示

时间:2013-03-19 13:04:52

标签: java swing

我有一个使用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));

图片一切都很好!加载!但它没有显示为图标。

2 个答案:

答案 0 :(得分:2)

当您从Netbeans内部运行应用程序时,项目文件夹中的文件可用,但如果您自己运行已编译的JAR,则可能不会。

请阅读此example(请注意注释)以正确加载图片。

答案 1 :(得分:0)

试试getClass().getResource("imgs/icon.png")。这个对我有用。注意绝对路径和相对路径之间的差异。您可能不需要前导/