Clean and Build (Netbeans) 后未显示程序图标

问题描述

我是 Java 新手,也是 Swing 新手。我刚刚使用 JFrame 创建了一个小应用程序并添加了一些按钮和文本字段,我还有一个方法可以设置任务栏和左角的图标。

当我在 Netbeans 中运行程序时,一切似乎都正确,但是当我构建项目时,它没有显示图标。我尝试了很多东西,但没有一个我有用。

这是我用于程序的方法

    private void setIcon() {
        ImageIcon imageIcon = new ImageIcon("src/main/java/icons/steam.png");
        this.setIconImage(imageIcon.getimage());
    }

然后我从构造函数调用方法

谢谢。

编辑 1:

实施安德鲁所说的,现在我有了:

BufferedImage img = null;
        try {
            URL url = getClass().getResource("src/main/java/icons/steam.png");
            img = ImageIO.read(url);
        } catch (IOException e) {
        }
        this.setIconImage(img);

这是在构造函数上。但是当我运行它时,我得到:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: input == null!
at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1400)

我尝试了不同的路径,但我无法得到它。是的,我确定“steam.png”就在那里。

解决方法

我一直在寻找解决方案,我终于得到了它(感谢安德鲁通过评论)

首先我编辑了我的代码,如EDIT 1

在那之后,我得到了一个 IllegalArgumentException,问题是我在 /src 下没有“资源”文件夹

所以我在 src/main/resources 下创建了我的资源文件夹并将我的图像放在里面

然后我得到了它

URL url = getClass().getResource("/icons/steam.png");
img = ImageIO.read(url);

这就是我的问题的解决方案,现在当我运行程序时,图像已加载。

非常感谢!