设置JButton图标时出现许多不熟悉的错误

时间:2013-09-02 19:01:26

标签: java swing nullpointerexception jbutton imageicon

我正在重建我创建的简单游戏程序以提高效率。当我尝试将一个Icon设置为JButton时,我遇到了麻烦。该程序的简单版本运行完美,在这方面没有任何问题。我在这里使用相同的代码完成相同的任务,但我收到了很多我以前没见过的错误。我可以帮助理解错误吗?

这是.jpg文件的路径:/Program/src/fire.jpg

这是我用来将图标添加到按钮的代码。错误指向以new开头的行,特别是当我在Eclipse中将它们分隔出来时的工作new。错误不在于hand.[d],我已经彻底测试过了。谢谢你给予的任何帮助。

SwingUtilities.invokeLater(new Runnable() {

    @Override 
    public void run() {GraphicGameBoard.hand[d].setIcon(new 
        javax.swing.ImageIcon(getClass().getResource("/Program/fire.jpg")));}});

堆栈追踪:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException   
at javax.swing.ImageIcon.<init>(Unknown Source)
    at Program.Main$2.run(Main.java:168)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(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.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)

2 个答案:

答案 0 :(得分:1)

好的,getResource查看了类路径。如果找不到资源,则返回null。因此,如果您创建一个jar,您可以使用7zip / WinZip打开它并找到路径/Program/fire.jpg(区分大小写!)。没有jar,从类根目录开始。

答案 1 :(得分:1)

我在这里找到了解决方案:

"Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException". I have no clue what I'm doing wrong

所以问题不在于我想到的图像文件的路径。这是我的JButton []数组。我只是声明了它,并没有在我的GUI中正确初始化它。