在Netbeans中工作,但不是“外部”

时间:2015-05-04 07:47:31

标签: java netbeans jar

当我在netbeans中按 PLAY 时,此代码工作正常,但是当我构建它并启动Jar文件时,它不会。

private void SettingsMouseEntered(java.awt.event.MouseEvent evt) {                                      
ImageIcon Setting = new ImageIcon(getClass().getResource("/pic/settings-icon.png"));
Settings.setIcon(Setting);
     HooverBar.setText("Settings");
}                                     

private void SettingsMouseExited(java.awt.event.MouseEvent evt) {                                     
ImageIcon Setting = new ImageIcon(getClass().getResource("/pic/settings-icon-half.png"));
Settings.setIcon(Setting);
     HooverBar.setText("");
}                                    

private void SettingsMouseClicked(java.awt.event.MouseEvent evt) {                                      
    CardLayout card = (CardLayout)mainPanel.getLayout();
card.show(mainPanel,"gui5"); 
}     

我无法弄清楚我做了什么?

当我开始使用“Java -jar Knowhow.jar”并将鼠标移到“设置”上时,我收到此错误

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(Unknown Source)
    at AppPackage.GUI.SettingsMouseEntered(GUI.java:1755)
    at AppPackage.GUI.access$1200(GUI.java:26)
    at AppPackage.GUI$11.mouseEntered(GUI.java:278)
    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)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEnterExit(Unknown Source)
    at java.awt.LightweightDispatcher.trackMouseEnterExit(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

1 个答案:

答案 0 :(得分:2)

您的图片未包装在您的jar中。你需要改变它。

我无法从你的问题的细节中看出为什么会发生这种情况,但背景是:

getClass().getResource("/pic/settings-icon.png")

正在从类路径加载图像。这是来自类路径的每个元素。因此,您的NetBeans类路径与java -jar命令的路径不同。

查看NetBeans中的运行配置,以查看其中的类路径,并将命令的类路径映射到该路径。

相关问题