/*
* 重写mousePressed()和mouseReleased()方法
*/
@Override
public void mousePressed(MouseEvent e) {
g.clearRect(0,0,canvas.getWidth(),canvas.getHeight());//鼠标点击前将画布上的原有图案清除
showMess.setText("矩形的左上角坐标为:("+e.getX()+","+e.getY()+")");//将坐标显示在标签上
x1=e.getX();//得到鼠标点击的点坐标
y1=e.getY();
}
@Override
public void mouseReleased(MouseEvent e) {
x2=e.getX();//得到鼠标松开的点坐标
y2=e.getY();
/*
* 将x1,x2,y1,y2进行比较,判断鼠标绘制方向
*/
if(x2>x1&&y2>y1) {//如果初始点的横坐标比终止点的横坐标小,并且初始点的纵坐标比终止点的纵坐标小,则鼠标绘制的方向是->右下
g.drawRect(x1,y1,Math.abs(x2-x1),Math.abs(y2-y1));
showMess.setText("矩形的左上角坐标为:("+x1+","+y1+"),矩形的宽为:"+Math.abs(x2-x1)+" 高为:"+Math.abs(y2-y1));
}
else if(x2>x1&&y2<y1){//如果初始点的横坐标比终止点的横坐标小,并且初始点的纵坐标比终止点的纵坐标大,则鼠标绘制的方向是->右上
g.drawRect(x1,y2,Math.abs(x2-x1),Math.abs(y2-y1));
showMess.setText("矩形的左上角坐标为:("+x1+","+y2+"),矩形的宽为:"+Math.abs(x2-x1)+" 高为:"+Math.abs(y2-y1));
}
else if(x2<x1&&y2>y1){//如果初始点的横坐标比终止点的横坐标大,并且初始点的纵坐标比终止点的纵坐标小,则鼠标绘制的方向是->左上
g.drawRect(x2,y1,Math.abs(x2-x1),Math.abs(y2-y1));
showMess.setText("矩形的左上角坐标为:("+x2+","+y1+"),矩形的宽为:"+Math.abs(x2-x1)+" 高为:"+Math.abs(y2-y1));
}
else{//如果初始点的横坐标比终止点的横坐标大,并且初始点的纵坐标比终止点的纵坐标大,则鼠标绘制的方向是->左下
g.drawRect(x2,y2,Math.abs(x2-x1),Math.abs(y2-y1));
showMess.setText("矩形的左上角坐标为:("+x2+","+y2+"),矩形的宽为:"+Math.abs(x2-x1)+" 高为:"+Math.abs(y2-y1));
}
}
我不是禹