画图的鼠标事件处理是画图程序中比较复杂的内容,这里只是简单介绍,有兴趣的可以看程序。
Point p0,p1;//记录拖拽画图的起点和终点
p0=new Point();
p1=new Point();
//鼠标按下,主要记录按下的点
void jPaneDraw_mousePressed(MouseEvent e) {
p0=new Point(e.getX(),e.getY());
}
//鼠标拖拽过程,根据不同的图形,画出拖拽过程的图形,复杂图形可以用矩形代替
void jPaneDraw_mouseDragged(MouseEvent e) {
switch(toolMode){
case 0:{ //直线
p1.x = e.getX();
p1.y = e.getY();
g.setColor(col);
g.drawLine(p0.x, p0.y, p1.x, p1.y);
jPaneDraw.repaint();
break;
}
...//其它图形
}
}
//鼠标抬起,根据p0和p1生成对应的图形
void jPaneDraw_mouseReleased(MouseEvent e) {
switch(toolMode){
case 0:{ //直线
CusLine2D aCusShape = new CusLine2D(p0.x, p0.y, p1.x, p1.y); //建立图形
...//将图形加入到图形列表
break;
}
...//其它图形
}
jPaneDraw.repaint();
}