2012-04-16 103 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

相關問題