【发布时间】:2015-03-07 14:51:38
【问题描述】:
我真的很困惑...所以我的文件结构是这样的
/PCBuilder
-PCBuilder.jar <= The main program
/PCBuilder/Images
/accessories/*.png files here
/gui/*.png files here
/parts/*.png files here
/prebuild/*.png files here
我的代码
private void okMouseEntered(java.awt.event.MouseEvent evt) {
ok.setIcon(new javax.swing.ImageIcon(getClass().getResource("/PCBuilder/images/gui/Okay_glow.png")));
}
private void okMouseExited(java.awt.event.MouseEvent evt) {
ok.setIcon(new javax.swing.ImageIcon(getClass().getResource("/PCBuilder/images/gui/Okay_red.png")));
}
当我在 Netbeans 上运行它时,它工作正常...但是当我尝试编译它并运行 JAR 文件时,它显示此错误...
D:\Documents\NetBeansProjects\PCBuilder_GUIHACKED\dist>java -jar PCBuilder_GUIHACKED.jar
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at PCBuilder.welcomescreen.okMouseEntered(welcomescreen.java:87)
at PCBuilder.welcomescreen.access$100(welcomescreen.java:12)
at PCBuilder.welcomescreen$1.mouseEntered(welcomescreen.java:45)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
任何想法如何解决这个问题?谢谢
【问题讨论】:
-
“有什么办法可以解决这个问题吗?” 确保图像在 Jar 文件中(或者至少在运行中——应用程序的时间类路径..)..
-
"或者至少在应用程序的运行时类路径上.." 怎么样?
-
顺便说一句 -
ok的类型是什么?JButton具有在鼠标悬停时更改图标的内置功能.. -
“顺便说一句 - ok 的类型是什么?” jLabel,充当按钮 :)
-
“或者至少在应用程序的运行时类路径上..”怎么样?”(用头撞桌子)我知道 我不应该提到这一点!这些图像似乎是一种“应用程序资源”。如果不在可执行 Jar 中,您打算如何分发它们?
标签: java image swing embedded-resource