1

データで満たされた2ddbl配列があり、コード内のどこからでも呼び出すことができます。

System.out.println(twodarray[0][0]);

そしてそれはうまく機能します。Actionlistenerの一部として呼び出すと、機能せず、Nullポインター例外が発生します。

私のイベントリスナーコード:

public void actionPerformed(ActionEvent e)      
 {
     if (e.getSource() == firstbutton)
     {

         System.out.println(twodarray[0][0]);

     }

 }

私はこれをどこから修正し始めるのか途方に暮れています。配列は、私のコードの他の場所にあるprintlnで示されているように、有効なデータとともに存在します。ここでどこが間違っているのですか?

4

2 に答える 2

2

アレイにアクセスできます。それは問題ではありません。問題は、アクションリスナーが呼び出されたときに配列変数がnullになることです。コンストラクターまたはメソッド内で配列変数をシャドウイングしていないことを確認してください。より詳細な回答については、問題とコードに関する詳細を提供してください。

つまり、クラス配列変数を初期化するのですか、それともメソッドまたはコンストラクターに対してローカルな配列変数のみを初期化するのですか?

于 2012-05-21T21:36:51.187 に答える
0

また、リスナーがUIスレッドで実行されていることにも注意する必要があります。2Dアレイを別の場所に配置しないようにしてください。

于 2012-05-21T21:39:59.747 に答える