ArrayList索引始终为0(零)

时间:2016-05-24 19:19:04

标签: java arraylist

我在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来了解我刚刚添加的元素的索引,但它始终为零。

提前感谢您的帮助。

2 个答案:

答案 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()变量