Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Проблема с ArrayList<Point>


Автор: Neox_GeForce 5.12.2009, 22:50
Есть код
Код

package one;

import java.util.ArrayList;
import java.util.Collection;
import java.awt.*;

/**
 * Created by IntelliJ IDEA.
 * User: Администратор
 * Date: 05.12.2009
 * Time: 16:02:15
 * To change this template use File | Settings | File Templates.
 */
public class Coordinate {
    private ArrayList<Point> points=new ArrayList<Point>(2100);
    public void addCoor(int x, int y){
       this.addCoor(new Point(x,y));
    }
    public void addCoor(Point p){
        points.add((Point)p.clone());
       System.out.println("Successful added: "+p.x+" "+p.y);
        System.out.println(points.size()); //Всегда 1
    }
    public int[] getX(){
         int[] temp=new int[points.size()];
       for(int i=0;i<points.size();i++){
           temp[i]=points.get(i).x;
           System.out.println(temp[i]);
       }

        return temp;
        }
    public int[] getY(){
      int[] temp=new int[points.size()];
       for(int i=0;i<points.size();i++){
           temp[i]=points.get(i).y;
           System.out.println(temp[i]);
       }

        return temp;
        }
    public void clear(){
        points.clear();
    }
    public int getSize(){
        return points.size();
    }
}



Проблема в том что при вызове метода addCoor Не додается елемент в список. Никак не могу разобратся.

Автор: alon4ik 6.12.2009, 01:24
попробуйте вместо:

points.add((Point)p.clone());

сделать:

points.add(p);

Не очень понятно, зачем вы так делаете.

Автор: Neox_GeForce 6.12.2009, 13:42
Код

points.add((Point)p.clone());

если я поменяю ненаоком обьект то он и в списке поменяется а клон нет. 
Но результат от points.add(p); и points.add((Point)p.clone()); один и тот же.
 Забыл написать. Я додаю обьекты так:
Код

 firstPoint=lastPoint=new Point(e.getX(),e.getY());
          cor.addCoor(firstPoint);

Автор: Neox_GeForce 6.12.2009, 14:22
Узнал Где ошибка. Я прсто обьект Coordinate создавал каждый раз когда добавлялв елемент.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)