2012-03-08 14 views
0

私の処理プログラムでは、私の描画機能でアイテムと呼ばれるグローバルArrayListにオブジェクトを追加しました。MouseListed()関数でArrayListの長さが0になるのはなぜですか?

ここにクラスがあります。

class Obj { 
    String name; 
    Obj(String name) { 
     self.name = name; 
    } 
} 

ここに私の描画機能があります。

void draw() { 
    items.add(new Obj("Bob")); 
} 

私はコンソールに私のmouseClicked()関数内の項目のサイズを印刷しようとしたが、私は0

void mouseClicked() { 
    print(items.size()); 
} 

なぜを取得しておきますか?

ArrayListのが私のクラスの後、私のファイルの先頭で宣言されています

ArrayList<Obj> items = new ArrayList<Obj>(); 
+0

あなたはMS.netにWinフォームを使用していますか? – Nap

+0

ありがとうございます。どうすればわかりますか? – dangerChihuahua007

+1

'items.add(新しいObj(" Bob "));を' mouseClicked() 'メソッドの先頭に追加します。そうすれば、あなたは 'items'に何かがあることを保証することができます。 – Jon

答えて

2

はまだかなり存在しないものがいくつかあります:

  1. self.name = name;this.name = name;
  2. する必要があります
  3. (フレームレートに基づいて)たくさんのオブジェクトを作成していますが、配列のサイズをmouseCliked()にチェックするだけです(代わりにprintln()を使用することもできます)。

はこれを試してみてください:

ArrayList<Obj> items = new ArrayList<Obj>(); 

void setup(){ 

} 
void draw() { 

} 
void mouseClicked() { 
    items.add(new Obj("Bob")); 
    println("items size: " + items.size()); 
} 
class Obj { 
    String name; 
    Obj(String name) { 
     this.name = name; 
    } 
} 
+0

ええ、mouseClickedを追加すると、このトリックが実行されました。 – dangerChihuahua007

関連する問題