netbeans 图标在设计器中正常,但在 运行 时失败(maven)

netbeans icon ok in designer but fails when run (maven)

所以我按照 netbeans(我使用的是 12.2)教程处理图像:

https://netbeans.org/kb/73/java/gui-image-display.html?print=yes

我可以在设计器中看到图标,但是当 运行 getResource() returns 一个 null 表明它找不到资源。

我发现了这个似乎相关的问题:

Netbeans ImageIcon not displaying

我已确保我使用的是包而不是文件夹。

产生的错误:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at java.desktop/javax.swing.ImageIcon.<init>(ImageIcon.java:217)
    at com.byotrader.zom.ZomFrame.initComponents(ZomFrame.java:37)

代码行:

   jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/byotrader/zom/resources/ZomIcon.gif"))); // NOI18N

我不知道为什么在 运行 时会失败。

所以我对 netbeans 的介绍并不像我希望的那样顺利!

根据要求的项目屏幕截图:

https://photos.app.goo.gl/CJ4EB3PD4a86nAVK8

有什么想法我没能做到吗?

与以下问题相关的一个建议答案:

netbeans & java, resourceMap.getString returning null

然而,答案明确指出,如果尚未完成清理构建,这只是一个问题。这不是我的问题,因为我已经尝试过干净的构建!

但是查看.jar​​文件发现没有添加图片资源!我认为这是问题所在。但是我不知道如何强制 IDE 完成它的工作!

Link 到文件结构:

https://photos.app.goo.gl/bRxHHW2UtRjPF7LeA

这个link将来也可能对其他人有帮助:

Netbeans Maven Project - Other Sources does not appear

(它一个Maven-Project!*)把你的图片放在:

src/main/resources/com/byotrader/zom/resources/ZomIcon.gif

../resources/...

解释:

Netbeans(在 Maven 项目中)完全(除了可能在设计器模式下!;)使用 maven 构建! ...这意味着...没有 gif(等)文件被认为是 src/main/java 格式...(检查您的 target/classes 文件夹!)

根据我的修复建议,图像应该位于所需位置。


* 教程(,明确告诉“Java 项目”)对于 Netbeans 12.2 来说有点过时,那里没有“Java 项目”......可能的替代方案是(maven/gradle) “Java 前端项目”(需要 javaFX!)或“good ole”(ant)“示例>Java With Ant”。