0

ラベルでこれを実行しようとすると、なぜNullPointerExceptionが発生するのですか?

JLabel player1CurrentScore = new JLabel("" + matchPlay.returnPL1GamesWon(),
                                        JLabel.CENTER);

このように2本の弦を連結できないからですか?

理想的には、必要に応じて正しくインクリメントできるように、ラベルをプレーヤーのスコアとして設定しようとしています。

これが私の例外スタックダンプです:

java.lang.NullPointerException
at GUI.makeFrame(GUI.java:71)
at GUI.<init>(GUI.java:28)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at bluej.runtime.ExecServer$3.run(ExecServer.java:808)
4

3 に答える 3

3

matchPlayがnullであるか、matchPlay.returnPL1GamesWon()自体がnullポインター例外をスローしない限り、nullポインター例外を引き起こすものは何もありません。

更新:例外がGUI.makeFrameからのものであるという事実に基づいて、実際にグラフィックディスプレイを持っているかどうかを尋ねる必要がありますか?これはコマンドラインアプリですか、Swingアプリですか、それともアプレットですか?グラフィックコンテキストなしでJLabelを作成しようとしているようです。

于 2009-03-16T14:44:28.683 に答える
3

質問の情報に基づく:参照matchPlayはnullです。

更新:matchPlayをnullにできないという情報がある場合、matchPlayで呼び出されるメソッドは例外をスローする必要があります。前のメソッド呼び出しのスタックトレースを確認してください。問題を特定するのに役立ちます。

于 2009-03-16T14:44:58.043 に答える
0

私はそれに答えることができた、

コンストラクターでフィールドを割り当てていた順序でした

お手数をおかけして申し訳ありません

みんな、ありがとう

于 2009-03-16T15:15:26.690 に答える