2014-11-23 120 views
1

因爲這是我第一次在處理中使用ArrayList,所以遇到了一些問題。ArrayList處理 - 如何分別訪問每個索引

我創建了一個存儲一個Ellipsee的PVector(x,y位置)的Arraylist。

我想要做的事情非常簡單,我認爲但是我無法在ArrayLists上找到很多信息。

代碼: ArrayList position;

void setup() 
{ 
    position= new ArrayList<Vectors>(); 
} 

void draw() 
{ 
    position.get(i).display(); //display ellipse 
} 

void mousePressed() 
{ 
    position.add(new Vectors(new PVector(mouseX, mouseY))); 
} 

所以每次按下鼠標時,都會在mouseX mouseY位置創建一個新的橢圓。我想要做的是當我創建一個數量省略號時,我需要單獨控制每個元素以通過單擊它們或使用KeyPressed()來更改它的大小或顏色。

+0

請添加您的代碼。 – jruizaranguren 2014-11-23 20:51:36

回答

2

因爲我假設你PVector對象已經創建,它具有的xPosition和yPosition的兩個公共屬性,這不會自動編譯:

// Initialise your arraylist 
ArrayList<PVector> listOfPVectors = new ArrayList<PVector>; 

// Objects can be added to your list as follows: 
PVector pvectorObject = new PVector(); 
listOfPVectors.add(pvectorObject); 

// The size of your ArrayList can be output as follows: 
println(listOfPVectors.size()); 

// You can iterate through every entry in the arraylist as follows: 
for(int index = 0; index < listOfPVectors.size(); index ++) { 
    println("X Position Value = " + listOfPVectors.get(index).xPosition); 
    println("Y Position Value = " + listOfPVectors.get(index).yPosition); 
} 

基本上,您使用ArrayList.get( indexPosition)方法來從你的ArrayList中檢索你想要的任何元素。然後,您可以像平常一樣消除它。

希望這會有所幫助!

+0

嗨安東尼謝謝你的回答。 getXPosition()是否在Processing中工作? – Apollon1954 2014-11-23 21:51:34

+0

嗨,我編輯了我的答案,以適應更加清晰的處理。希望現在有點清楚了(我刪除了getXPosition()和getYPosition())的getter方法。讓我知道如果這有助於:) – AJC24 2014-11-23 22:08:49

+0

謝謝安東尼它確實幫助我。不過我認爲打印處理中的值是:println(「Y Position Value =」+ listOfPVectors.get(index).x); – Apollon1954 2014-11-23 23:26:23