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

Program icon not showing up after Clean and Build (Netbeans)

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

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

这是我在程序中使用的方法:

    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”就在那里。

我一直在寻找解决方案,终于找到了(感谢 Andrew 的评论)

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

中所见

在那之后,我得到了一个 IllegalArgumentException,问题是我在 /src

下没有“资源”文件夹

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

然后我用

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

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

非常感谢!