2012-04-16 187 views
0

我在网上发现了一个砖头破碎机游戏的java源代码。我下载并试图运行它,但它给了我一个NullPointerException。什么是这个例外,我该如何解决它?谢谢。Java游戏无法正常工作

http://zetcode.com/tutorials/javagamestutorial/breakout/

这里是堆栈跟踪:

Exception in thread "main" java.lang.NullPointerException 
    at javax.swing.ImageIcon.<init>(ImageIcon.java:181) 
    at Ball.<init>(Ball.java:16) 
    at Board.gameInit(Board.java:48) 
    at Board.addNotify(Board.java:43) 
    at java.awt.Container.addNotify(Container.java:2578) 
    at javax.swing.JComponent.addNotify(JComponent.java:4685) 
    at java.awt.Container.addNotify(Container.java:2578) 
    at javax.swing.JComponent.addNotify(JComponent.java:4685) 
    at java.awt.Container.addNotify(Container.java:2578) 
    at javax.swing.JComponent.addNotify(JComponent.java:4685) 
    at javax.swing.JRootPane.addNotify(JRootPane.java:739) 
    at java.awt.Container.addNotify(Container.java:2578) 
    at java.awt.Window.addNotify(Window.java:663) 
    at java.awt.Frame.addNotify(Frame.java:470) 
    at java.awt.Window.show(Window.java:859) 
    at java.awt.Component.show(Component.java:1584) 
    at java.awt.Component.setVisible(Component.java:1536) 
    at java.awt.Window.setVisible(Window.java:842) 
    at Breakout.<init>(Breakout.java:14) 
    at Breakout.main(Breakout.java:18) 
Exception in thread "Timer-0" java.lang.NullPointerException 
    at Board$ScheduleTask.run(Board.java:110) 
    at java.util.TimerThread.mainLoop(Timer.java:512) 
    at java.util.TimerThread.run(Timer.java:462) 

显然,这个代码应该工作,但事实并非如此。

+0

您使用哪个java版本编译游戏?,下载最新版本 – DGomez 2012-04-16 19:06:29

+0

@DGomez异常输出并不表示版本不匹配。看到答案。 – 2012-04-16 19:29:59

回答

5

您可能没有下载图像,或者至少没有将它们放在正确的文件夹中。确保你把图像放在这里:

浏览到Ball.java,去两个文件夹级别,创建一个名为图像的文件夹,并在那里放置您的图像。

+0

对不起,不澄清。我有正确的地方的图像文件。 – dudewhat14 2012-04-16 19:08:18

+0

我很确定你没有。否则Class.getResource()不会返回null。 – 2012-04-16 19:09:01

+0

我有两个“。”而不是一个用于我的文件位置。这就是搞砸了。我将我的图像放在与我的课程文件相同的文件夹中。我现在开始工作了。谢谢。 – dudewhat14 2012-04-16 19:11:50

相关问题