畫圖的鼠標事件處理是畫圖程序中比較復雜的內容,這里只是簡單介紹,有興趣的可以看程序。
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();
}