带有Arraylist的动态精灵 - 线程“AWT-EventQueue-0”中的异常java.lang.NullPointerException

时间:2012-02-18 14:08:14

标签: java awt

GameCanvas

AppleEnity - http://pastebin.com/ZVyL5fRm

Enity - 粘贴bin.com/r4cqtr8B(无法发布超过2个链接)

我在向场景中添加新的动态精灵时遇到问题。按E(应该随机生成一个苹果)给我这个错误:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at start.GameCanvas.dodaj(GameCanvas.java:65)
at start.GameCanvas.keyPressed(GameCanvas.java:149)
at java.awt.Component.processKeyEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(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 :(得分:0)

问题显然在于这一行:

jablka.add(new AppleEnity("resources/apple.png", random.nextInt(400), random.nextInt(400)));

...但它不是关于jablka变量,而是使用这个表达式:

random.nextInt(400)

你永远不会初始化random变量:

private Random random;

将以上行替换为:

private final Random random = new Random();

你会没事的。或者只使用Math对象或RandomUtils