2014-11-23 116 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