亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dsdesktopselectevent.java

?? 用JAVA編寫的繪圖程序 功能簡介: 支持存儲
?? JAVA
字號:
package drawsmart.itsv.swing;

import drawsmart.itsv.tool.DSMouseEvent;
import drawsmart.itsv.framework.*;
import java.awt.event.MouseEvent;
import javax.swing.*;
import java.awt.Cursor;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.*;
import java.util.ArrayList;

/**
 * <p>Title: 桌面選擇類</p>
 * <p>Description: 用于選擇組件和移動組件,放大/縮小組件</p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: </p>
 * @author 崔江
 * @version 2.0
 */

public class DSDesktopSelectEvent extends DSMouseEvent
{
  //選中的組件
  JDSComponentface[] jDSComponentfacesAll=null;

  //
  JDSComponentface jDSComponentface=null;

  //選中的直線
  JDSLineface jDSLineface=null;

  DSExtendJPopupMenu dSExtendJPopupMenu=null;

  //
  Point p;

  //按住CTRL鍵的選擇
  ArrayList arrayListSelectCtrl=new ArrayList();

  //點擊句柄索引數
  int isHandle=-1;

  //
  private Point starPoint;

  //計算是否在選中的組件內
  boolean selectbool=false;
  /**
   * 構造器
   * @param desk 桌面接口
   * @param imageIcon 圖標
   */
  public DSDesktopSelectEvent(JDSDesktopface desk,ImageIcon imageIcon,DSExtendJPopupMenu dSExtendJPopupMenu)
  {
    //
    super(desk);
    //設置圖標
    setImageIcon(imageIcon);
    //
    this.dSExtendJPopupMenu=dSExtendJPopupMenu;

  }
  /**
   * 鼠標壓下事件
   * @param e
   */
  public void mousePressed(MouseEvent e)
  {
    jDSComponentfacesAll=getJDSDesktopface().getSelectComponentface();
    //計算是否在選中的組件內
    if(getJDSDesktopface().getSelectComponentface()!=null && getJDSDesktopface().getSelectComponentface().length>1)
    {
      selectbool=false;
      for (int q = 0; q < getJDSDesktopface().getSelectComponentface().length;q++) {
        boolean bool=getJDSDesktopface().getSelectComponentface()[q].contains(e.getPoint());
        if(bool)
        {
          selectbool=true;
          break;
        }
      }
    }
    else
    {
        selectbool=false;
    }
    //計算是否選中直線
    JDSLineface[] jDSLinefacethiss=getJDSDesktopface().getJDSAllLineface();
    for(int i=0;i<jDSLinefacethiss.length;i++)
    {
      boolean bool=jDSLinefacethiss[i].containPoint(e.getPoint());
      if(bool==true) break;
    }
    //
    starPoint=e.getPoint();
    if (( (e.getModifiers() & InputEvent.BUTTON1_MASK ) != 0) && (e.getModifiers() & KeyEvent.CTRL_MASK )== 0) {
      p = e.getPoint();
      //請空Ctrl
      arrayListSelectCtrl.clear();
      if(getJDSDesktopface().getSelectComponentface()!=null && getJDSDesktopface().getSelectComponentface().length>1 && selectbool==true) return;
      //只查詢組件
      jDSComponentface = getJDSDesktopface().getJDSComponent(e.getPoint());

      //如果沒有選中的組件則全部改為false
      if (jDSComponentface == null) {
        jDSComponentfacesAll=null;
        JDSComponentface[] jDSComponentfaces = getJDSDesktopface().
            getJDSAllComponent();
        for (int i = 0; i < jDSComponentfaces.length; i++) {
          jDSComponentfaces[i].setIsSelect(false);
        }
      }
      //否則把不等于本身的改為false
      else {
        jDSComponentfacesAll=null;
        arrayListSelectCtrl.add(jDSComponentface);
        JDSComponentface[] jDSComponentfaces = getJDSDesktopface().
            getJDSAllComponent();
        for (int i = 0; i < jDSComponentfaces.length; i++) {
          if (jDSComponentface != jDSComponentfaces[i]) {
            jDSComponentfaces[i].setIsSelect(false);
          }
        }

      }

      //設置選擇狀態
      if (jDSComponentface != null)
      {
        jDSComponentface.setIsSelect(true);
      }

        //判斷是否在句柄中
      if (jDSComponentface != null)
        isHandle = jDSComponentface.getHandle(e.getPoint());
        //刷新桌面
      getJDSDesktopface().repaint();

    }
    //CTRL的復選方式
    else if(( (e.getModifiers() & InputEvent.BUTTON1_MASK ) != 0) && (e.getModifiers() & KeyEvent.CTRL_MASK )!= 0)
    {
      p = e.getPoint();
      //只查詢組件
      jDSComponentface=null;
      JDSComponentface jDSComponentfaceCTRL = getJDSDesktopface().getJDSComponent(e.getPoint());
      if(jDSComponentfaceCTRL==null) return;

      //請空Ctrl
      //arrayListSelectCtrl.clear();
      //if(getJDSDesktopface().getSelectComponentface()!=null && getJDSDesktopface().getSelectComponentface().length>1) return;
      //與已選中的組件同步
      if(jDSComponentfacesAll!=null && jDSComponentfacesAll.length>0)
      {
        arrayListSelectCtrl.clear();
        for(int k=0;k<jDSComponentfacesAll.length;k++)
        {
          arrayListSelectCtrl.add(jDSComponentfacesAll[k]);
        }
      }
      //

      //否則把不等于本身的改為false
      if(jDSComponentfaceCTRL!=null)
      {
        if(selectbool==false)
        {
          arrayListSelectCtrl.add(jDSComponentfaceCTRL);
        }
        //取消選中的狀態
        else
        {
            for(int k2=0;k2<arrayListSelectCtrl.size();k2++)
            {
              JDSComponentface jDSComponentfaceClear=(JDSComponentface)arrayListSelectCtrl.get(k2);
              if(jDSComponentfaceClear==jDSComponentfaceCTRL)
              {
                arrayListSelectCtrl.remove(k2);
              }
            }
        }

      }
      //生成已選中的組件數組
      jDSComponentfacesAll=(JDSComponentface[])arrayListSelectCtrl.toArray(new JDSComponentface[0]);
      //設置選擇狀態
      if (jDSComponentfaceCTRL != null)
      {
        jDSComponentfaceCTRL.setIsSelect(!jDSComponentfaceCTRL.getIsSelect());
      }

        //判斷是否在句柄中
      if (jDSComponentfaceCTRL != null)
        isHandle = jDSComponentfaceCTRL.getHandle(e.getPoint());
        //刷新桌面
      getJDSDesktopface().repaint();
    }
    //顯示右鍵菜單
    else if ( (e.getModifiers() & InputEvent.BUTTON3_MASK) != 0) {
      p = e.getPoint();
      jDSComponentfacesAll=null;
      //只查詢組件
      jDSComponentface = getJDSDesktopface().getJDSComponent(e.getPoint());
      //如果沒有選中的組件則全部改為false
      if (jDSComponentface == null) {
        JDSComponentface[] jDSComponentfaces = getJDSDesktopface().
            getJDSAllComponent();
        for (int i = 0; i < jDSComponentfaces.length; i++) {
          jDSComponentfaces[i].setIsSelect(false);
        }
      }
      //否則把不等于本身的改為false
      else {
        JDSComponentface[] jDSComponentfaces = getJDSDesktopface().
            getJDSAllComponent();
        for (int i = 0; i < jDSComponentfaces.length; i++) {
          if (jDSComponentface != jDSComponentfaces[i]) {
            jDSComponentfaces[i].setIsSelect(false);
          }
        }
      }

      //設置選擇狀態
      if (jDSComponentface != null)
      {
        jDSComponentface.setIsSelect(true);
      }
      //初始化右鍵菜單只查詢組件
      JDSComponentface jDSComponentfacePopup = getJDSDesktopface().
          getJDSComponent(e.getPoint());
      if (jDSComponentfacePopup == null)return;
      dSExtendJPopupMenu.setFace(jDSComponentfacePopup, jDSDesktopface);
      //

      //顯示右鍵菜單
      dSExtendJPopupMenu.show(e.getComponent(), e.getX(), e.getY());
    }

  }

  /**
   * 返回鼠標樣式
   * @return
   */
  public Cursor getCursor() {
    return new Cursor(Cursor.DEFAULT_CURSOR);
  }

  /**
   * 鼠標拖拽事件
   * @param e
   */
  public void mouseDragged(MouseEvent e) {
    //System.out.println(jDSComponentface);
    if(jDSComponentface!=null)
    {
      //判斷是移動組件,還是拖動句柄

      if(isHandle==-1)
      {
        //不在句柄中
        jDSComponentface.setPlaceComponent(p,e.getPoint());
      }
      else
      {
        //在句柄中
        jDSComponentface.moveHandle(isHandle,jDSComponentface.getRectSize(),(int)(e.getX()-p.getX()),(int)(e.getY()-p.getY()));
      }

    }
    //移動多個組件
    else if(getJDSDesktopface().getSelectComponentface()!=null && getJDSDesktopface().getSelectComponentface().length>1 && selectbool==true && (e.getModifiers() & KeyEvent.CTRL_MASK )== 0)
    {
      for(int q=0;q<getJDSDesktopface().getSelectComponentface().length;q++)
      {
        getJDSDesktopface().getSelectComponentface()[q].setPlaceComponent(p,e.getPoint());
      }

    }
    //多選
    else
    {
      //拉框多選組件
      int x = e.getX(), y = e.getY(), m = (int) starPoint.getX(),
          n = (int) starPoint.getY();
      int tmp = 0;
      if (x < m) {
        tmp = x;
        x = m;
        m = tmp;
      }
      if (y < n) {
        tmp = y;
        y = n;
        n = tmp;
      }
      Rectangle rect=new Rectangle(m, n, x - m, y - n);
      JDSComponentface[] jDSComponentfaces=getJDSDesktopface().getJDSAllComponent();
      ArrayList arrayList=new ArrayList();
      //arrayList.clear();
      if(jDSComponentfacesAll!=null)
      {
        for(int k=0;k<jDSComponentfacesAll.length;k++)
        {
          arrayList.add(jDSComponentfacesAll[k]);
        }
      }

      for(int k=0;k<jDSComponentfaces.length;k++)
      {
        if(jDSComponentfaces[k].intersects(rect))
        {
          //判斷是否包含在已有的組件中
          boolean boolAll=true;
          if(jDSComponentfacesAll!=null)
          {
            for (int k2 = 0; k2 < jDSComponentfacesAll.length; k2++) {
              if (jDSComponentfaces[k] == jDSComponentfacesAll[k2]) {
                boolAll = false;
                break;
              }
            }

          }

          if(boolAll==true)
          {
            jDSComponentfaces[k].setIsSelect(true);
            arrayList.add(jDSComponentfaces[k]);
          }

        }
        else {
          if((e.getModifiers() & KeyEvent.CTRL_MASK )== 0)
            jDSComponentfaces[k].setIsSelect(false);
        }

      }
      //生成已選中的組件數組
      jDSComponentfacesAll=(JDSComponentface[])arrayList.toArray(new JDSComponentface[0]);
      //顯示選擇框
      getJDSDesktopface().setSelectRect(rect);
    }
    //刷新桌面
    getJDSDesktopface().repaint();
    p=e.getPoint();

  }

  /**
   * 鼠標彈起事件
   * @param e
   */

  public void mouseReleased(MouseEvent e) {
    if(jDSComponentfacesAll==null && jDSComponentface==null)
    {
      getJDSDesktopface().setSelectComponentface(null);
      JDSComponentface[] jDSComponentfaceAll=getJDSDesktopface().getJDSAllComponent();
      for(int k=0;k<jDSComponentfaceAll.length;k++)
      {
        jDSComponentfaceAll[k].setIsSelect(false);
      }
      //記錄歷史
      //getJDSDesktopface().addUnReList();
    }
    else if(jDSComponentfacesAll!=null && jDSComponentface==null)
    {
      getJDSDesktopface().setSelectComponentface(jDSComponentfacesAll);
      //記錄歷史
      //getJDSDesktopface().addUnReList();
    }
    else if (jDSComponentfacesAll == null && jDSComponentface != null)
    {
      jDSComponentfacesAll = new JDSComponentface[1];
      jDSComponentfacesAll[0] =jDSComponentface;
      getJDSDesktopface().setSelectComponentface(jDSComponentfacesAll);
      //記錄歷史
      //getJDSDesktopface().addUnReList();
    }
    getJDSDesktopface().setSelectRect(null);
    //jDSComponentface=null;
    //jDSComponentfacesAll=null;
    isHandle=-1;
//    starPoint=null;
//    p=null;
    //刷新桌面
    getJDSDesktopface().repaint();
  }
  /**
   * 鼠標移動事件
   * @param e MouseEvent
   */
  public void mouseMoved(MouseEvent e)
  {
    //System.out.println(jDSComponentface);
    if (getJDSDesktopface().getSelectComponentface()!=null && getJDSDesktopface().getSelectComponentface().length==1)
    {
      JDSComponentface jDSComponentfaceOne=getJDSDesktopface().getSelectComponentface()[0];
      isHandle = jDSComponentfaceOne.getHandle(e.getPoint());
      //System.out.println(isHandle);
      if (isHandle == 1 || isHandle==6) {
        jDSDesktopface.setMouseSyle(new Cursor(Cursor.S_RESIZE_CURSOR ));
      }
      else if(isHandle==3 || isHandle==4)
      {
        jDSDesktopface.setMouseSyle(new Cursor(Cursor.W_RESIZE_CURSOR ));
      }
      else if(isHandle==2)
      {
        jDSDesktopface.setMouseSyle(new Cursor(Cursor.NE_RESIZE_CURSOR));
      }
      else if(isHandle==0)
      {
        jDSDesktopface.setMouseSyle(new Cursor(Cursor.NW_RESIZE_CURSOR));
      }
      else if(isHandle==5)
      {
        jDSDesktopface.setMouseSyle(new Cursor(Cursor.SW_RESIZE_CURSOR));
      }
      else if(isHandle==7)
      {
        jDSDesktopface.setMouseSyle(new Cursor(Cursor.SE_RESIZE_CURSOR));
      }
      else if(isHandle==-1) {
        jDSDesktopface.setMouseSyle(new Cursor(Cursor.DEFAULT_CURSOR));
      }
    }
    else {
      jDSDesktopface.setMouseSyle(new Cursor(Cursor.DEFAULT_CURSOR));
    }
  }

  //鼠標單擊事件
  public void mouseClicked(MouseEvent e)
  {
    JDSLineface[] jDSLinefacethiss=getJDSDesktopface().getJDSAllLineface();
    for(int i=0;i<jDSLinefacethiss.length;i++)
    {
      boolean bool=jDSLinefacethiss[i].containPoint(e.getPoint());
      if(bool==true) break;
    }
    getJDSDesktopface().repaint();
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
hitomi一区二区三区精品| 久久久精品免费观看| 欧美成人精品高清在线播放| 欧美国产激情一区二区三区蜜月 | 欧美一级片在线看| 中文一区在线播放| 免费在线观看不卡| 欧美色网一区二区| 亚洲三级小视频| 成人自拍视频在线| 精品欧美一区二区在线观看| 亚洲尤物视频在线| 91日韩在线专区| 久久久久久久久伊人| 蜜乳av一区二区| 欧美午夜片在线看| 最新成人av在线| 国产精品一区二区久久不卡| 欧美变态tickling挠脚心| 午夜精品久久久久久久99樱桃| 99国内精品久久| 国产精品麻豆99久久久久久| 国产一区二区三区在线观看精品| 日韩丝袜美女视频| 久久机这里只有精品| 91精品国产综合久久久蜜臀粉嫩 | 色综合久久精品| 国产精品妹子av| 国产成人精品aa毛片| 欧美mv日韩mv国产| 精品一区二区三区影院在线午夜 | 欧美在线短视频| 一区二区三区中文字幕精品精品| 色综合久久88色综合天天免费| 综合久久久久综合| 日本高清不卡aⅴ免费网站| 中文字幕一区二区三区不卡在线| 国产成人综合亚洲91猫咪| 婷婷久久综合九色综合伊人色| 一本到三区不卡视频| 一区二区三区四区高清精品免费观看| 色视频一区二区| 亚洲高清免费观看高清完整版在线观看 | av午夜精品一区二区三区| 国产精品视频一区二区三区不卡| 成人夜色视频网站在线观看| 1区2区3区国产精品| av电影在线观看不卡| 亚洲精选在线视频| 欧美精品视频www在线观看| 日韩精品欧美精品| 国产亚洲一区二区三区在线观看| 成人免费va视频| 亚洲国产wwwccc36天堂| 日韩一区二区免费高清| 国产精品性做久久久久久| 国产精品毛片无遮挡高清| 久久伊人蜜桃av一区二区| 国产suv精品一区二区883| 1024成人网色www| 欧美日韩激情在线| 国产综合色精品一区二区三区| 国产日韩综合av| 色94色欧美sute亚洲线路一久| 日韩高清不卡一区二区三区| 国产亚洲综合在线| 欧美日韩国产首页在线观看| 精品综合久久久久久8888| 国产精品国产三级国产aⅴ入口| 91精品福利在线| 国产自产v一区二区三区c| 亚洲欧美日韩在线不卡| 日韩三级高清在线| 色综合欧美在线| 国产精品自产自拍| 亚洲成人手机在线| 国产精品理论片在线观看| 欧美精品tushy高清| 99久久国产免费看| 久久电影国产免费久久电影| 一区二区三区四区五区视频在线观看| 欧美电视剧免费全集观看| 欧洲激情一区二区| 东方aⅴ免费观看久久av| 日本不卡免费在线视频| 亚洲欧美精品午睡沙发| 久久色视频免费观看| 欧美精品高清视频| 91网站黄www| 国产精品456露脸| 日韩高清中文字幕一区| 中文字幕一区二区三区视频| 久久只精品国产| 欧美一区二区免费视频| 精品视频1区2区| 日本精品一级二级| 成人高清免费在线播放| 国产一区二区在线视频| 六月丁香婷婷色狠狠久久| 亚洲mv大片欧洲mv大片精品| 亚洲视频图片小说| 国产精品欧美一级免费| 久久精品综合网| 久久精品亚洲精品国产欧美kt∨| 欧美一级夜夜爽| 欧美丰满美乳xxx高潮www| 成人精品小蝌蚪| 成人国产免费视频| 国产一区啦啦啦在线观看| 免费xxxx性欧美18vr| 日一区二区三区| 热久久国产精品| 91在线免费视频观看| 国产99久久久久| 北岛玲一区二区三区四区| 成人av免费网站| 91在线porny国产在线看| 不卡欧美aaaaa| 99久久99久久综合| 在线日韩av片| 欧美三级在线看| 91麻豆精品国产91久久久久久久久 | 中文字幕av不卡| 亚洲欧洲精品一区二区三区不卡 | 青青草国产成人av片免费| 天天综合网 天天综合色| 日韩影院在线观看| 奇米精品一区二区三区四区| 精品亚洲国产成人av制服丝袜| 韩国一区二区在线观看| 国产91精品久久久久久久网曝门 | 国产一区二三区| 成人av集中营| 在线免费精品视频| 91精选在线观看| 亚洲精品在线三区| 欧美激情一区在线| 亚洲一区二区三区美女| 日本大胆欧美人术艺术动态| 国产伦精品一区二区三区免费| 高清国产一区二区| 欧美日韩小视频| 久久久久久久精| 亚洲精品大片www| 精品写真视频在线观看 | 亚洲柠檬福利资源导航| 亚洲电影第三页| 久久99在线观看| 99re这里都是精品| 欧美成人艳星乳罩| 国产精品无码永久免费888| 亚洲午夜久久久久久久久电影网| 久久99久久久久| 91丝袜国产在线播放| 日韩精品一区国产麻豆| 国产精品进线69影院| 日韩在线一区二区三区| 91丨porny丨国产入口| 制服丝袜日韩国产| 亚洲精选视频在线| 国产精品一区二区无线| 欧美另类变人与禽xxxxx| 中文字幕成人网| 麻豆精品在线看| 欧美三级韩国三级日本一级| 国产清纯美女被跳蛋高潮一区二区久久w | 国产精品欧美综合在线| 青青草原综合久久大伊人精品优势 | av爱爱亚洲一区| 欧美v亚洲v综合ⅴ国产v| 一区二区三区影院| 丁香婷婷深情五月亚洲| 欧美一区二区三区免费在线看 | 国产一区二区三区久久久 | 欧美日韩在线免费视频| 中日韩av电影| 国产精品18久久久| 精品免费日韩av| 日本午夜一本久久久综合| 91国产福利在线| 亚洲精品视频一区二区| 波多野结衣中文字幕一区二区三区| 日韩一级完整毛片| 日韩不卡手机在线v区| 欧美午夜精品久久久久久孕妇| 中文字幕在线观看不卡视频| 国产一区欧美二区| 久久影院午夜论| 狠狠色丁香婷综合久久| 日韩视频一区二区三区 | 成人精品一区二区三区四区| 久久精品欧美日韩精品| 国产91精品免费| 国产日韩精品一区二区三区| 国产成人精品午夜视频免费| 久久久久国产精品麻豆ai换脸 | 精品在线播放免费| 日韩精品中文字幕一区 | 免费观看久久久4p| 日韩午夜电影av|