我在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来知道我刚添加的元素的索引是什么,但它始终为零.
预先感谢您的帮助.
您只有一个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)