我在Java中遇到了ArrayLists的问题。 问题是当我向列表中添加一个元素(pointStorer)时,索引不会递增,并且每次重置并保持为零。 这是我的代码(嗯,它只是代码的重要部分):
private ArrayList pointStorer = new ArrayList();
private Point pointValues = new Point();
public void mouseClicked(MouseEvent e) {
pointValues.setLocation(e.getX(), e.getY());
mousePointX = pointValues.x;
mousePointY = pointValues.y;
repaint();
}
public void paint(Graphics g){
pointStorer.add(pointValues);
System.out.println("Index point "+pointStorer.indexOf(pointValues));
}
我使用方法.indexOf来了解我刚刚添加的元素的索引,但它始终为零。
提前感谢您的帮助。
答案 0 :(得分:9)
您只有一个Point
实例可以添加到ArrayList中,因此ArrayList的所有索引都包含相同的Point
。
要在每次点击鼠标时添加新的Point
,您应该创建一个新的Point
实例:
public void mouseClicked(MouseEvent e) {
Point pointValues = new Point();
pointValues.setLocation(e.getX(), e.getY());
mousePointX = pointValues.x;
mousePointY = pointValues.y;
repaint();
}
答案 1 :(得分:0)
您应该在pointStorer
方法
paint()
变量