问题描述
我是 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);
这就是我的问题的解决方案,现在当我运行程序时,图像已加载。
非常感谢!