-1

これが問題です-私のMainメソッドはInitGuiのみを呼び出します。クラス全体(基本的にはファイル全体)の中に、InitGuiメソッドといくつかのパブリック静的GUIオブジェクトがあります。オブジェクトの1つは、実際には配列です。

public static JButton Keys[] = null; 

そして、各JButton「キー」の場所を取得してパネルに配置するplaceKeysというメソッドがあります。このメソッドを使用しない場合、コード全体が機能します。基本的には、i = 0の代わりに、各jButtonを次のように配置する代わりにplaceKey(arguments here ...)を呼び出します。

for i=0 to whatever
Keys[i] = new JButton(jBStringArray[i]);
        Keys[i].setLocation(2 + i*kSize,2+row*50);
        Keys[i].setSize(50, kSize);     
        keyboardPane.add(Keys[i]);            

メソッドを書き留めましたが、Keys []にアクセスしようとすると、placeKeysでポインターエラーが報告されます。これは、メソッドの最初の行を意味します。

あなたが私を理解したことを願っています

4

2 に答える 2

1

for ループの前 (宣言時、または null チェックに依存している場合は for ループの直前) で配列を作成する必要がありますKeys = new JButton[whatever+1];。ああ、変数名は小文字で始めてください。これは普遍的に受け入れられていることです。

于 2012-12-05T07:58:41.953 に答える
0
//assuming jBStringArray is already defined here
public static JButton Keys[] = new JButton[jBStringArray.length];
于 2012-12-05T07:58:46.337 に答える