Rex Mao

          分享java技術與生活

          java畫圖程序技術小結(三) 畫圖的鼠標事件處理

          畫圖的鼠標事件處理是畫圖程序中比較復雜的內容,這里只是簡單介紹,有興趣的可以看程序。
                   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;
             }
                   ...//
          其它圖形
          }
          }
          //
          鼠標抬起,根據p0p1生成對應的圖形
          void jPaneDraw_mouseReleased(MouseEvent e) {
             switch(toolMode){
          case 0:{ //
          直線
                   CusLine2D aCusShape = new CusLine2D(p0.x, p0.y, p1.x, p1.y); //
          建立圖形
                   ...//
          將圖形加入到圖形列表
                   break;
          }
                   ...//
          其它圖形
          }
                   jPaneDraw.repaint();
          }

          posted on 2007-04-24 17:07 Rex Mao 閱讀(2217) 評論(1)  編輯  收藏 所屬分類: 技術

          評論

          # re: java畫圖程序技術小結(三) 畫圖的鼠標事件處理 2007-04-25 23:10 me

          這是程序里最難的部分嗎?我得多看看了   回復  更多評論   

          主站蜘蛛池模板: 淮南市| 柯坪县| 阜康市| 合阳县| 贵南县| 永定县| 若尔盖县| 阳城县| 马边| 安平县| 乌审旗| 涟源市| 子长县| 萝北县| 永春县| 海盐县| 外汇| 唐海县| 贵定县| 陇川县| 南岸区| 长乐市| 马公市| 昭觉县| 清流县| 尖扎县| 宁波市| 岐山县| 明水县| 罗平县| 伊春市| 罗源县| 临高县| 宣化县| 土默特左旗| 甘泉县| 黄平县| 天祝| 屏东市| 辽中县| 青阳县|