0

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

图像一切正常!它加载!但它没有显示为图标。

4

2 回答 2

2

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

阅读此示例(注意注释)以正确加载您的图像。

于 2013-03-19T13:10:56.730 回答
0

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

于 2017-09-20T12:18:45.570 回答