我想问一个关于arraylist的问题。在我的程序中,我定义了一个数组列表和一个用户定义的对象。问题是,当我想向这个数组列表添加一个对象时,它会添加对象,但下一次当我将不同的值赋予用户对象时,它会将之前添加的旧对象的值设置为新对象。我的意思是,例如,我的旧对象中有13个,新对象是14,这使得旧对象14。我找不到解决方案。我正在研究一个绘图程序。我发布了一些代码部分。错误的设置arraylist
public class Tester extends JPanel implements MouseMotionListener, MouseListener {
ArrayList<Lines> array = new ArrayList<Lines>();
Lines l1;
...
public Tester(){
l1 = new Lines();
l1.point1 = new Point();
l1.point2 = new Point();
l1.denklem = new int[3];
而且THI是我怎么添加对象变成ArrayList中
else if(lineci == true){
if(mouseclicks == 0){
l1.point1.x = e.getX();
l1.point1.y = e.getY();
statusBar.setText(String.format("Clicked at [%d, %d]",
e.getX(), e.getY()));
mouseclicks++;
starter = false;
}
else if(mouseclicks == 1){
l1.point2.x = e.getX();
l1.point2.y = e.getY();
statusBar.setText(String.format("Clicked at [%d, %d]",
e.getX(), e.getY()));
mouseclicks = 0;
int a = l1.point2.y - l1.point1.y;
int b = l1.point1.x - l1.point2.x;
int c = (l1.point2.x * l1.point1.y) - (l1.point1.x * l1.point2.y);
l1.denklem[0] = a;
l1.denklem[1] = b;
l1.denklem[2] = c;
array.add(l1);
// array3.add(l1);
repaint();
}
}
当我点击鼠标,如果lineci是真实的,它吸引,如点线。当我打印arraylist的元素时,总是会留下最后一行。如果我绘制10行,阵列列表的10个元素是相同的。它从不保留ArrayList中的旧值。顺便说一下,布尔启动器并不重要。我只是忘了删除它。
Downvoter:护理评论?对我来说这似乎是一个合法的问题。 – Adamski