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

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

?? draggablecomponent.java

?? 修正了jdk1.6中對托盤事件產生異常的bug.
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
    if (enabled && mousePressed) {
      Point p = SwingUtilities.convertPoint((JComponent) e.getSource(), e.getPoint(), component);
      if (dragStarted || enableInsideDrag || !component.contains(p)) {
        if (reorderEnabled)
          doDrag(p);
        else
          dragStarted = true;

        fireDraggedEvent(EventUtil.convert(e, component, p));
      }
    }
  }

  private void dragCompleted(MouseEvent e) {
    mousePressed = false;
    dragStarted = false;

    KeyboardFocusManager.getCurrentKeyboardFocusManager().removeKeyEventDispatcher(abortDragKeyDispatcher);

    if (e == null) {
      restoreComponentOrder();
      fireNotDroppedEvent();
    }
    else if (!checkParentContains(
        SwingUtilities.convertPoint((JComponent) e.getSource(), e.getPoint(), component.getParent()))) {
      restoreComponentOrder();
      fireDroppedEvent(EventUtil.convert(e, component));
    }
    else {
      fireDroppedEvent(EventUtil.convert(e, component));
      //if (component.contains(p))
      if (!selectOnMousePress && !e.isShiftDown())
        fireSelectedEvent();
    }

    fireChangedEvent(DraggableComponentEvent.TYPE_RELEASED);
  }

  private void updateParent() {
    if (component.getParent() != null) {
      ComponentUtil.validate(component.getParent());
      //component.getParent().repaint();
    }
  }

  private void doDrag(Point p) {
    dragStarted = true;
    JComponent parent = (JComponent) component.getParent();

    if (parent.getComponentCount() == 1)
      return;

    Point p2 = SwingUtilities.convertPoint(component, p, parent);
    int toIndex = getMoveComponentIndex(p2);
    if (toIndex != -1) {
      toIndex = Math.min(toIndex, parent.getComponentCount() - 1);
      Component fromComponent = getComponent(parent, dragIndex);
      int fromDimension;
      int toPos;
      int toDimension;

      if (isVerticalDrag()) {
        fromDimension = fromComponent.getHeight();
        toPos = (int) SwingUtilities.convertPoint(parent, p2, getComponent(parent, toIndex)).getY();
        toDimension = getComponent(parent, toIndex).getHeight();
      }
      else {
        fromDimension = fromComponent.getWidth();
        toPos = (int) SwingUtilities.convertPoint(parent, p2, getComponent(parent, toIndex)).getX();
        toDimension = getComponent(parent, toIndex).getWidth();
      }

      if ((toIndex > dragIndex && toDimension - toPos > fromDimension) ||
          ((dragIndex == -1 || toIndex < dragIndex) && toPos > fromDimension))
        return;

      if (dragIndex != -1 && dragIndex != toIndex) {
        removeComponent(parent, fromComponent, dragIndex);
        addComponent(parent, fromComponent, toIndex);
        fireChangedEvent(DraggableComponentEvent.TYPE_MOVED);
      }
    }

    if (toIndex < 0) {
      restoreComponentOrder();
    }
    else
      dragIndex = toIndex;
  }

  private boolean isVerticalDrag() {
    JComponent parent = (JComponent) component.getParent();
    if (parent.getComponentCount() > 1)
      return getComponent(parent, 0).getY() < getComponent(parent, 1).getY();

    return false;
  }

  private boolean checkParentContains(Point p) {
    if (outerParentArea == null)
      return component.getParent().contains(p);

    Point p2 = SwingUtilities.convertPoint(component.getParent(), p, outerParentArea);
    if (detectOuterAreaAsLine) {
      Insets i = new Insets(0, 0, 0, 0);//outerParentArea.getInsets();
      return component.getParent().contains(p)
             ||
             (outerParentArea.contains(p2) &&
              (isVerticalDrag()
               ?
               (p2.getX() >= i.left && p2.getX() < (outerParentArea.getWidth() - i.right))
               :
               (p2.getY() >= i.top && p2.getY() < (outerParentArea.getHeight() - i.bottom))));
    }

    return component.getParent().contains(p) || outerParentArea.contains(p2);
  }

  private int getMoveComponentIndex(Point p) {
    JComponent parent = (JComponent) component.getParent();
    if (checkParentContains(p)) {
      boolean vertical = isVerticalDrag();
      for (int i = 0; i < parent.getComponentCount() - 1; i++) {
        Point p2 = getComponent(parent, i + 1).getLocation();

        if (vertical) {
          if (p.getY() >= 0 && p.getY() < p2.getY())
            return i;
        }
        else {
          if (p.getX() >= 0 && p.getX() < p2.getX())
            return i;
        }
      }

      if (dragIndex == -1)
        return parent.getComponentCount();
      else if (vertical)
        return p.getY() < 0 ? 0 : parent.getComponentCount() - 1;
      else
        return p.getX() < 0 ? 0 : parent.getComponentCount() - 1;
    }

    return -1;
  }

  private JComponent getComponent(Container parent, int index) {
    if (layoutOrderList != null)
      return (JComponent) layoutOrderList.get(index);

    return (JComponent) parent.getComponent(index);
  }

  private int getComponentIndex(Component c) {
    if (layoutOrderList != null)
      return layoutOrderList.indexOf(c);

    return ComponentUtil.getComponentIndex(c);
  }

  private void addComponent(Container parent, Component c, int index) {
    if (layoutOrderList != null) {
      layoutOrderList.add(index, c);
      parent.add(c, index);
    }
    else
      parent.add(c, index);

    revalidateComponentTree((JComponent) c);
  }

  private void removeComponent(Container parent, Component c, int index) {
    revalidateComponentTree((JComponent) c);

    if (layoutOrderList != null)
      if (index < 0) {
        layoutOrderList.remove(c);
        parent.remove(c);
      }
      else {
        Component tmp = (Component) layoutOrderList.get(index);
        layoutOrderList.remove(index);
        parent.remove(tmp);
      }
    else if (index < 0)
      parent.remove(c);
    else
      parent.remove(index);
  }

  private void revalidateComponentTree(JComponent c) {
    Container parent = c.getParent();
    int index = ComponentUtil.getComponentIndex(c);
    if (index > 0)
      doRevalidateComponentTree((JComponent) parent.getComponent(index - 1));
    doRevalidateComponentTree(c);
    if (index < parent.getComponentCount() - 1)
      doRevalidateComponentTree((JComponent) parent.getComponent(index + 1));
  }

  private void doRevalidateComponentTree(JComponent c) {
    c.revalidate();
    int count = c.getComponentCount();
    for (int i = 0; i < count; i++)
      doRevalidateComponentTree(((JComponent) c.getComponent(i)));
  }

  private void restoreComponentOrder() {
    if (reorderEnabled && dragIndex != -1 && dragFromIndex != -1 && dragIndex != dragFromIndex) {
      Container parent = component.getParent();
      Component comp = getComponent(parent, dragIndex);
      removeComponent(parent, comp, -1);
      dragIndex = dragFromIndex;
      addComponent(parent, comp, dragIndex);
      fireChangedEvent(DraggableComponentEvent.TYPE_MOVED);
    }
  }

  private void fireChangedEvent(int type) {
    updateParent();

    if (listeners != null) {
      DraggableComponentEvent event = new DraggableComponentEvent(this, type);
      Object[] l = listeners.toArray();
      for (int i = 0; i < l.length; i++)
        ((DraggableComponentListener) l[i]).changed(event);
    }
  }

  private void fireSelectedEvent() {
    updateParent();

    if (listeners != null) {
      DraggableComponentEvent event = new DraggableComponentEvent(this);
      Object[] l = listeners.toArray();
      for (int i = 0; i < l.length; i++)
        ((DraggableComponentListener) l[i]).selected(event);
    }
  }

  private void fireDraggedEvent(MouseEvent mouseEvent) {
    dragEventFired = true;
    if (listeners != null) {
      DraggableComponentEvent event = new DraggableComponentEvent(this, mouseEvent);
      Object[] l = listeners.toArray();
      for (int i = 0; i < l.length; i++)
        ((DraggableComponentListener) l[i]).dragged(event);
    }
  }

  private void fireDroppedEvent(MouseEvent mouseEvent) {
    updateParent();

    if (dragEventFired) {
      dragEventFired = false;
      if (listeners != null) {
        DraggableComponentEvent event = new DraggableComponentEvent(this, mouseEvent);
        Object[] l = listeners.toArray();
        for (int i = 0; i < l.length; i++)
          ((DraggableComponentListener) l[i]).dropped(event);
      }
    }
  }

  private void fireNotDroppedEvent() {
    updateParent();

    if (dragEventFired) {
      dragEventFired = false;
      if (listeners != null) {
        DraggableComponentEvent event = new DraggableComponentEvent(this);
        Object[] l = listeners.toArray();
        for (int i = 0; i < l.length; i++)
          ((DraggableComponentListener) l[i]).dragAborted(event);
      }
    }
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品免费观看视频| 老司机免费视频一区二区三区| 亚洲成人一区二区| 精品系列免费在线观看| 日本韩国欧美一区二区三区| 久久精品人人做| 午夜精品久久久久久不卡8050| 成人免费观看av| 久久综合给合久久狠狠狠97色69| 亚洲国产精品一区二区www在线 | 又紧又大又爽精品一区二区| 狠狠色综合日日| 欧美人伦禁忌dvd放荡欲情| 中文字幕在线不卡一区二区三区| 久久精品国产亚洲高清剧情介绍| 欧美亚日韩国产aⅴ精品中极品| 久久日一线二线三线suv| 天天综合天天综合色| 日本乱码高清不卡字幕| 国产精品久久久一本精品| 国产一区视频在线看| 精品粉嫩aⅴ一区二区三区四区| 亚洲高清久久久| 在线精品视频免费播放| 成人欧美一区二区三区白人 | 国产精品久久99| 国产一区二区三区av电影| 日韩精品最新网址| 日韩国产在线观看一区| 7777女厕盗摄久久久| 亚洲高清在线精品| 欧美日本韩国一区| 日韩va亚洲va欧美va久久| 3751色影院一区二区三区| 日本不卡视频在线观看| 欧美一级高清片| 久久精品国产亚洲高清剧情介绍| 日韩精品在线一区二区| 国产自产视频一区二区三区| 国产性天天综合网| 国产69精品久久99不卡| 国产精品午夜免费| 97精品国产露脸对白| 亚洲女厕所小便bbb| 色诱视频网站一区| 午夜久久久久久| 日韩一区二区三区电影在线观看| 麻豆精品新av中文字幕| 精品国产凹凸成av人网站| 国产成人免费视频网站| 亚洲摸摸操操av| 欧美色图激情小说| 蜜臀av一级做a爰片久久| 久久亚洲精品小早川怜子| 成人免费黄色在线| 亚洲1区2区3区视频| 精品久久久久久久久久久久久久久久久 | 国产精品天天摸av网| 白白色 亚洲乱淫| 一区二区三区波多野结衣在线观看 | 99国产精品视频免费观看| 亚洲精品中文字幕在线观看| 欧美人体做爰大胆视频| 国产一区不卡在线| 亚洲男人的天堂av| 日韩欧美成人午夜| 成人黄色大片在线观看| 日韩精品久久久久久| 国产亚洲精品中文字幕| 色老汉一区二区三区| 日韩电影在线一区二区三区| 国产午夜亚洲精品午夜鲁丝片| 91偷拍与自偷拍精品| 免费人成在线不卡| 亚洲欧美区自拍先锋| 欧美刺激午夜性久久久久久久 | 免费不卡在线观看| 奇米综合一区二区三区精品视频| 国产亚洲午夜高清国产拍精品| 在线观看亚洲专区| 丁香啪啪综合成人亚洲小说| 丝袜诱惑制服诱惑色一区在线观看| 中文字幕欧美三区| 91精品国产色综合久久不卡电影| 成人高清av在线| 久久国产福利国产秒拍| 亚洲成av人**亚洲成av**| 欧美激情一区二区在线| 欧美成人伊人久久综合网| 91久久精品一区二区| 成人av在线电影| 精品一区二区三区免费观看| 亚洲成a天堂v人片| 国产精品不卡视频| 国产午夜精品久久久久久久| 日韩一区二区免费在线电影| 欧美亚洲综合色| av欧美精品.com| 国产69精品一区二区亚洲孕妇| 久久国内精品视频| 午夜电影一区二区| 亚洲国产精品麻豆| 日韩美女精品在线| 国产精品福利av| 国产精品另类一区| 中文字幕的久久| 亚洲国产精品高清| 亚洲国产精品精华液2区45| 26uuu成人网一区二区三区| 91精品国产综合久久久久久| 欧美精品久久99久久在免费线| 91天堂素人约啪| 不卡的av在线| 91理论电影在线观看| 99久久婷婷国产综合精品电影| 成人一区二区视频| 成人app网站| eeuss鲁片一区二区三区在线看 | 奇米777欧美一区二区| 日韩激情一区二区| 日本不卡不码高清免费观看| 日韩高清在线一区| 日本免费新一区视频| 美女视频一区二区三区| 久久精品国产免费| 色网站国产精品| 在线观看91精品国产入口| 欧美日韩久久一区| 日韩欧美一区电影| 久久色.com| 亚洲日本免费电影| 亚洲成av人片一区二区三区| 日韩av中文字幕一区二区三区| 蜜桃一区二区三区四区| 国产成人精品一区二区三区四区| 国产成人免费视频网站高清观看视频| 国产成人综合在线| 91免费视频观看| 欧美一区二区三区免费视频| 2021国产精品久久精品| 国产精品久久久久久久岛一牛影视| 一区二区三区av电影| 日本特黄久久久高潮| 国产精品一品视频| 在线免费观看视频一区| 日韩欧美国产一二三区| 国产精品天天摸av网| 图片区小说区区亚洲影院| 国产成人在线视频播放| 在线亚洲高清视频| 久久综合精品国产一区二区三区| 日韩伦理电影网| 久久66热偷产精品| www.av精品| 精品sm捆绑视频| 自拍偷拍国产精品| 久久精品二区亚洲w码| 成人午夜视频免费看| 欧美日本高清视频在线观看| 欧美国产日产图区| 免费成人性网站| 99国产精品国产精品毛片| 717成人午夜免费福利电影| 国产亚洲欧美色| 首页综合国产亚洲丝袜| 高清shemale亚洲人妖| 欧美人伦禁忌dvd放荡欲情| 国产目拍亚洲精品99久久精品| 亚洲国产日韩在线一区模特| 成人av午夜影院| 日韩美女一区二区三区四区| 亚洲欧美另类在线| 蜜桃久久久久久| 日本二三区不卡| 日本一区二区三区久久久久久久久不| 亚洲成人黄色小说| 99精品热视频| 久久一夜天堂av一区二区三区 | 欧美写真视频网站| 欧美激情综合在线| 蜜臀国产一区二区三区在线播放| 色综合 综合色| 国产精品蜜臀av| 国产一区二区日韩精品| 欧美一区欧美二区| 伊人色综合久久天天人手人婷| 成人av第一页| 久久影院电视剧免费观看| 麻豆91免费观看| 91精品国产品国语在线不卡| 亚洲妇熟xx妇色黄| 欧美三级蜜桃2在线观看| 亚洲色图在线视频| 成人国产精品免费观看视频| 久久婷婷久久一区二区三区| 另类调教123区| 日韩一区二区高清| 免费成人在线播放| 日韩丝袜情趣美女图片| 日本va欧美va精品|