2012-03-08 23 views
0

在我的處理程序中,我在我的繪圖函數中將一個對象添加到一個全局爲ArrayList的項目中。爲什麼在我的mouseClicked()函數中我的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的winform? – Nap 2012-03-08 02:46:53

+0

謝謝。我怎麼知道? – dangerChihuahua007 2012-03-08 02:47:19

+1

將'items.add(new Obj(「Bob」));'添加到'mouseClicked()'方法的開頭。這樣你就可以保證你有'物品'中的東西。 – Jon 2012-03-08 02:50:51

回答

2

有一對夫婦的事情是還沒有應用:

  1. self.name = name;應該this.name = name;
  2. 您正在創建大量對象(基於幀率),但僅檢查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 2012-03-09 08:16:04

相關問題