回答:
如果你曾经看到这些线条并且像我一样被迷惑,这就是它们的意思。
Thread[AWT-EventQueue-0] (Suspended (exception NullPointerException))
EventDispatchTread.run() line: not available [local variables unavailable]
并不是说这些变量不可用,因为它们潜伏在一个潮湿的图书馆里的神秘裹尸布后面。不不,他们只是超出了范围!这仍然是你的错,你仍然必须找到空值,不,你不能责怪图书馆。重要的教训!
问题:
作为初学者,对我来说最令人沮丧的事情之一就是图书馆!这是一种爱恨交织的关系:一方面他们让我做我通常不明白的事情如何处理我理解的代码,另一方面因为我不完全理解他们,他们有时会抛出一个使用其他工作正常的代码扳手!这是因为我不理解使用这些库时可能发生的错误,因为我没有编写它们,而且当其中一个导入开始起作用时,eclipse 并没有给我太多的帮助......
所以这就是问题所在:我一直在使用 java.awt.event 来处理屏幕上的一堆 JButton。当我使用我制作的其中一个按钮时出现错误。错误是:
Thread[AWT-EventQueue-0] (Suspended (exception NullPointerException))
EventDispatchTread.run() line: not available [local variables unavailable]
这是什么意思?可能是什么原因造成的?我很尴尬地发布代码,但如果你能忍受尝试破译我糟糕的风格,这里是似乎导致这个错误被抛出的方法。
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
String name;
code...
if(cmd.equals("Play")) {
name = field.getText();
card = getCard(name);
if(card != null) {
if(rules.zoneHasCard(card, rules.hand)) {
display.updateStatusMessage(rules.play(card));
field.setText("");
display.updateHand(rules.zoneList("hand"));
display.updateDiscard(rules.zoneList("Discard")); // This is the error here! The discard Zone was empty!
}
else {
field.setText("You do not have " + card.getName());
field.selectAll();
}
}
else {
field.setText("That cardname is unused");
field.selectAll();
}
}
}