答え:
これらの行を見て、私のように誤解されている場合は、次のことを意味します。
Thread[AWT-EventQueue-0] (Suspended (exception NullPointerException))
EventDispatchTread.run() line: not available [local variables unavailable]
変数がどこかの湿った図書館の謎の覆いの後ろに潜んでいるので、変数が利用できないというわけではありません。いいえ、対象外です!それはまだあなたのせいです.nullを見つけなければなりません.ライブラリを責めることはできません. 重要な教訓!
質問:
初心者の私にとって最もイライラすることの 1 つはライブラリです。それは愛憎関係です: 一方で、彼らは、私が理解できるコードをどうやって処理するか、私が通常理解できないようなことを私にさせてくれます。それ以外の場合は正常に機能しているコードをレンチしてください。これは、これらのライブラリを使用するときに発生する可能性のあるエラーを理解していないためです。それらを作成していないためです。また、インポートの 1 つが動作し始めたときに eclipse を使用することはあまりありません...
ここに問題があります。私は java.awt.event を使用して、画面上のさまざまな JButton を処理してきました。作成したボタンの 1 つを使用すると、エラーが発生します。エラーは次のとおりです。
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();
}
}
}