ArrayList索引始终为0(零)

Hey*_*Man 2 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));


}
Run Code Online (Sandbox Code Playgroud)

我使用方法.indexOf来知道我刚添加的元素的索引是什么,但它始终为零.

预先感谢您的帮助.

Era*_*ran 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();
}
Run Code Online (Sandbox Code Playgroud)