单击时从阵列中的点打印坐标



我想打印出数组中3个点的X和Y坐标。单击JFrame时,该单击的坐标需要指向第一个点p1,第二次单击指向第二个点p2,第三次单击指向p3。这是我的代码:

public void mousePressed(MouseEvent e) {
Point[] points = new Point[3];
p1 = points[0] = e.getPoint();
p2 = points[1] = e.getPoint();
p3 = points[2] = e.getPoint();
System.out.println(p1 + p2 + p3);

我做错了什么?

public void mousePressed(MouseEvent e) {
    Point[] points = new Point[3];
    Point p1 = points[0] = e.getPoint();
    Point p2 = points[1] = e.getPoint();
    Point p3 = points[2] = e.getPoint();
    System.out.println(p1.toString() + p2.toString() + p3.toString());
}

你也可以使用StringBuilder来连接你的点:

System.out.println((new StringBuilder()).append(p1).append(p2).append(p3));

与上面的答案类似,您可以执行以下操作:

ArrayList<Point> points = new ArrayList<Point>();
public void mousePressed(MouseEvent e)
{
    if(points.size() < 3)
       points.add(e.getPoint());
}

然后。。。得到(0),得到(1),得到。得到(2)将得到三分。

您发布的代码是在每次按下鼠标时向Point数组添加相同的三个点。

您需要将点放在鼠标按压之外

Point[] points=new Point[3];
int i=0;
public void mousePressed(MouseEvent e){
    if(i==0){
        points[0]=e.getPoint();
    }else if(i==1){
        points[1]=e.getPoint();
    }else if(i==2){
        points[2]=e.getPoint();
    }
    i++;
}

最新更新