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

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

?? addingmouselistener.java

?? SWING的界面UI包 SWING的界面UI包
?? JAVA
字號:
/*
 * AddingMouseListener.java
 *
 * Created on August 1, 2007, 4:36 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */
package dyno.swing.designer.beans.events;

import dyno.swing.designer.beans.*;
import dyno.swing.designer.beans.models.AddingModel;
import java.awt.Component;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.dnd.DropTarget;
import java.awt.dnd.DropTargetDragEvent;
import java.awt.dnd.DropTargetDropEvent;
import java.awt.dnd.DropTargetEvent;
import java.awt.event.MouseEvent;
import java.beans.BeanInfo;
import javax.swing.RootPaneContainer;
import javax.swing.event.MouseInputListener;


/**
 * 添加模式下鼠標事件處理器。
 *
 * @author William Chen
 */
public class AddingMouseListener extends DropTarget implements MouseInputListener, Constants {

    private SwingDesigner designer;
    /**
     * 添加模式下當前要添加組件的BeanInfo
     */
    private BeanInfo beanInfo;
    /**
     * 當前鼠標的設計組件
     */
    private Component current;
    /**
     * 當前添加模式對應的model
     */
    private AddingModel addingModel;

    /** Creates a new instance of AddingMouseListener */
    public AddingMouseListener(SwingDesigner designer, BeanInfo beanInfo) {
        this.designer = designer;
        this.beanInfo = beanInfo;
        this.addingModel = designer.getAddingModel();
    }

    public void mouseClicked(MouseEvent e) {
    }

    public void mousePressed(MouseEvent e) {
        adding(e.getX(), e.getY());
    }

    private void adding(int x, int y) {
        //當前鼠標所在的組件
        Component hoveredComponent = designer.getComponentAt(x, y);

        //獲取該組件所在的焦點容器
        Component container = Util.getHotspotContainer(designer, hoveredComponent);

        boolean success = false;

        if (container != null) {
            //獲取該container組件對應的適配器
            ComponentAdapter adapter = AdapterBus.getComponentAdapter(designer, container);

            if (adapter instanceof ContainerAdapter) {
                //如果是容器,則調用其acceptComponent接受組件
                success = ((ContainerAdapter) adapter).acceptComponent(x, y);
            }
        }

        if (success) {
            //如果添加成功,則觸發相應事件
            fireComponentAdded();
            designer.getSelectionModel().setSelectedComponent(addingModel.getBean());
        } else {
            Toolkit.getDefaultToolkit().beep();
            fireComponentCanceled();
        }

        //取消提示
        designer.setPainter(null);
        //切換添加狀態到普通狀態
        designer.stopAddingState();
    }

    //觸發各種事件
    private void fireComponentAdded() {
        DesignerEvent evt = new DesignerEvent(this);
        evt.setAddedComponent(addingModel.getBean());
        designer.getEditListenerTable().fireComponentAdded(evt);
    }

    private void fireComponentCanceled() {
        DesignerEvent evt = new DesignerEvent(this);
        designer.getEditListenerTable().fireComponentCanceled(evt);
    }

    public void mouseReleased(MouseEvent e) {
    }

    public void mouseEntered(MouseEvent e) {
        entering(e.getX(), e.getY());
    }

    private void entering(int x, int y) {
        //將要添加的組件圖標移動到鼠標下的位置
        addingModel.moveTo(x, y);
        designer.repaint();
    }

    public void mouseExited(MouseEvent e) {
        exiting();
    }

    private void exiting() {
        //隱藏組件圖標
        addingModel.reset();
        designer.repaint();
    }

    public void mouseDragged(MouseEvent e) {
    }

    public void mouseMoved(MouseEvent e) {
        hovering(e.getX(), e.getY());
    }

    private void hovering(int x, int y) {
        //當前位置移植鼠標e所在的位置
        addingModel.moveTo(x, y);

        //獲取e所在的焦點組件
        Component hotspot = designer.getComponentAt(x, y);

        //獲取焦點組件所在的焦點容器
        Component container = Util.getHotspotContainer(designer, hotspot);

        if(container instanceof RootPaneContainer)
            container=((RootPaneContainer)container).getContentPane();
        
        if (container != null) {
            HoverPainter painter = null;

            if (container != current) {
                //如果焦點容器不是當前容器
                if (current != null) {
                    //取消前一個焦點容器的提示渲染器
                    designer.setPainter(null);
                }
                
                painter = Util.getContainerPainter(designer, container);

                //為界面設計器設置提示渲染提示器
                designer.setPainter(painter);

                //將當前容器更新為新的容器
                current = container;
            } else {
                //獲取當前設計界面的提示渲染器
                Painter p =designer.getPainter();
                if(p instanceof HoverPainter)
                painter = (HoverPainter)p;
            }

            if (painter != null) {
                //為提示渲染器設置焦點位置、區域等渲染參數
                Rectangle rect = Util.getRelativeBounds(container);
                rect.x += designer.getOuterLeft();
                rect.y += designer.getOuterTop();
                painter.setRenderingBounds(rect);
                painter.setHotspot(new Point(x, y));
                painter.setComponent(addingModel.getBean());
            }
        } else {
            //如果鼠標不在任何組件上,則取消提示器
            designer.setPainter(null);
            current = null;
        }

        designer.repaint();
    }

    public void dragEnter(DropTargetDragEvent dtde) {
        Point loc = dtde.getLocation();
        entering(loc.x, loc.y);
    }

    public void dragOver(DropTargetDragEvent dtde) {
        Point loc = dtde.getLocation();
        hovering(loc.x, loc.y);
    }

    public void dropActionChanged(DropTargetDragEvent dtde) {
    }

    public void dragExit(DropTargetEvent dte) {
        exiting();
    }

    public void drop(DropTargetDropEvent dtde) {
        Point loc = dtde.getLocation();
        adding(loc.x, loc.y);
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色图制服诱惑| 日日摸夜夜添夜夜添精品视频| 午夜天堂影视香蕉久久| 在线免费av一区| 北岛玲一区二区三区四区| 国产成人日日夜夜| 国产精品18久久久久| 黑人巨大精品欧美黑白配亚洲| 日韩中文字幕91| 老汉av免费一区二区三区| 日本vs亚洲vs韩国一区三区二区 | 五月天丁香久久| 亚洲 欧美综合在线网络| 亚洲尤物在线视频观看| 亚洲一区国产视频| 日韩精品一二区| 精品一区二区三区av| 韩国精品在线观看| 亚洲成人自拍网| 国产一区二区久久| 欧美成人精品1314www| 有码一区二区三区| 丁香一区二区三区| 日韩欧美一区二区三区在线| 欧美精品一区二区三区在线| 日韩一二三四区| 亚洲婷婷在线视频| 懂色av一区二区三区蜜臀| 久久久精品免费网站| 精品在线免费视频| 精品国产区一区| 秋霞av亚洲一区二区三| 在线播放视频一区| 亚洲成人第一页| 在线电影国产精品| 日本一道高清亚洲日美韩| 国产蜜臀av在线一区二区三区| 国产很黄免费观看久久| 欧美国产1区2区| 日韩av成人高清| 国产高清在线观看免费不卡| 美女视频黄a大片欧美| 国产乱子伦视频一区二区三区| youjizz久久| 欧美久久一二区| 国产精品久久久久久久久快鸭| 日本女优在线视频一区二区| 99视频超级精品| 欧美一区二区三区电影| 亚洲图片激情小说| 裸体健美xxxx欧美裸体表演| 99久久免费视频.com| 精品国产亚洲在线| 午夜视频在线观看一区二区三区 | 91精品国产欧美一区二区成人| 久久久夜色精品亚洲| 樱桃视频在线观看一区| 久久99最新地址| 欧美色图天堂网| 国产精品天美传媒| 国产乱码精品一区二区三区五月婷| 91黄色免费版| 最新国产の精品合集bt伙计| 国产精品一二三四| 欧美成人性战久久| 日韩av在线发布| 欧美亚洲综合另类| 艳妇臀荡乳欲伦亚洲一区| av一二三不卡影片| 久久精品一区二区三区不卡| 日韩影视精彩在线| 欧美在线播放高清精品| 国产精品久久久久久久久图文区| 国产在线精品国自产拍免费| 欧美久久久久久久久久| 亚洲影院免费观看| 在线观看视频一区| 亚洲线精品一区二区三区八戒| av不卡在线播放| 亚洲欧美色综合| 色94色欧美sute亚洲线路一久| 国产精品国产自产拍高清av| eeuss鲁片一区二区三区在线观看| 久久久激情视频| 不卡av电影在线播放| 精品国产青草久久久久福利| 午夜久久福利影院| 337p亚洲精品色噜噜| 日韩av中文字幕一区二区| 日韩欧美在线影院| 国产精品18久久久久久久久| 国产精品国产三级国产普通话99| 成人av在线一区二区| 亚洲男人的天堂一区二区| 91福利视频久久久久| 亚洲成a人片在线观看中文| 91.成人天堂一区| 久久成人18免费观看| 精品国产亚洲在线| jlzzjlzz亚洲女人18| 亚洲美女淫视频| 日韩一区二区三区视频| 国产老肥熟一区二区三区| 国产精品美女久久久久久久网站| 91日韩在线专区| 秋霞国产午夜精品免费视频| 国产亚洲精品bt天堂精选| 色素色在线综合| 麻豆视频观看网址久久| 国产日本欧洲亚洲| 在线日韩一区二区| 国精产品一区一区三区mba视频| 国产精品区一区二区三| 欧美日韩视频在线第一区| 久久9热精品视频| 亚洲精品中文字幕在线观看| 欧美乱妇15p| 成人免费av在线| 日韩影院在线观看| 最新日韩在线视频| 精品福利视频一区二区三区| 成人av网站免费| 美日韩一区二区| 亚洲一区在线观看视频| 国产日韩欧美精品一区| 欧美三级蜜桃2在线观看| 成人免费看黄yyy456| 美女脱光内衣内裤视频久久网站| 国产精品国产精品国产专区不片| 日韩欧美一区二区视频| 色综合久久综合| 国产福利精品一区二区| 日本欧美一区二区三区乱码| 亚洲老司机在线| 国产区在线观看成人精品 | 美女视频黄频大全不卡视频在线播放| 国产精品久久久久婷婷二区次| 日韩一区二区精品| 欧美日韩亚洲另类| 一本色道久久综合亚洲91 | 99re这里都是精品| 日本午夜一本久久久综合| 国产亚洲欧美日韩在线一区| 91激情在线视频| 99在线精品一区二区三区| 国产激情精品久久久第一区二区| 丝袜亚洲另类丝袜在线| 亚洲制服丝袜在线| 亚洲一区欧美一区| 亚洲国产日韩综合久久精品| 亚洲人xxxx| 亚洲综合色网站| 亚洲丰满少妇videoshd| 亚洲国产色一区| 午夜久久电影网| 奇米精品一区二区三区四区| 日韩精品乱码免费| 日本在线观看不卡视频| 看国产成人h片视频| 久久99久久久久久久久久久| 精品一区二区国语对白| 国产精品原创巨作av| 国产成a人亚洲精| 不卡视频免费播放| 91国内精品野花午夜精品| 欧美体内she精视频| 欧美精品第一页| 精品福利在线导航| 中文字幕制服丝袜成人av| 国产一区二区看久久| 这里只有精品视频在线观看| 欧美日韩国产免费| 精品久久一区二区| 国产精品婷婷午夜在线观看| 亚洲免费观看高清完整版在线观看熊| 亚洲精品成人精品456| 亚洲成人高清在线| 精品国产凹凸成av人导航| 日韩电影一区二区三区| 亚洲丝袜自拍清纯另类| 亚洲国产成人精品视频| 日本成人中文字幕在线视频| 国产成人av一区二区| 色综合欧美在线视频区| 91麻豆精品国产91久久久使用方法| 日韩欧美www| 国产精品国产a| 免费在线观看一区| 成人三级在线视频| 欧美日韩一级视频| 国产精品毛片久久久久久| 亚洲丶国产丶欧美一区二区三区| 韩国av一区二区三区四区| 99精品视频在线播放观看| 欧美一区午夜视频在线观看| 中文无字幕一区二区三区| 日韩av一二三| 色爱区综合激月婷婷| 久久亚洲二区三区| 五月婷婷久久丁香|