我想打印出数组中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++;
}