六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 113|回复: 0

SWT中的拖放支持 - 拖放原理概述

[复制链接]

升级  40%

4

主题

4

主题

4

主题

童生

Rank: 1

积分
20
 楼主| 发表于 2013-2-7 19:40:55 | 显示全部楼层 |阅读模式
SWT中有关拖放操作的类都在org.eclipse.swt.dnd包中。该包中主要的接口和类如下所示:

类名                                    功 能 描 述

Clipboard                          剪贴板类,可以实现对剪贴板的操作

DND                                类似于SWT类,封装了拖放时所用的一些常量

DragSource                       拖放源类,可将一个控件定义为拖放源

DropTarget                       拖放目标类,可将一个空间定义为拖放目标

DragSourceListen和          拖放源控件时所触发的事件,触发事件的具体信息通过DragSourceEvent传递过来
DragSourceAdapter

DropSourceListen和          拖放目标控件时所触发的事件,触发事件的具体信息通过DragTargetEvent传递过来
DropSourceAdapter

Transfer                             数据传输类,用于将Java数据转换为系统本地的数据,反之亦然。通常用于拖
                                         放操作和剪贴板操作。通常使用其子类 TextTransfer类、FileTransfer类
                                         和RTFTransfer类等

看似简单的拖放操作,其实过程相当复杂,现在就将一个拖放过程分解开来,分析一下拖放的过程。
1、要有一个拖放源,也就是”拖的是什么“。简单的理解就是可以进行拖放的控件。只有光标进入到可拖放
控件的区域,才可以开始拖放操作。SWT中使用DragSource类来定义一个拖放源对象。
2、还要有一个拖放目标,也就是”放到哪里“。简单的理解就是可接受源的目标控件。只有当光标进入到目标控件的区域时,才可以进行拖放的操作。SWT中使用DragTarget类来定义一个拖放目标对象。
3、要在拖和放操作之间搭建一个桥梁,将拖的数据放到目标对象中。

拖放操作无非是将源的数据放置到目标对象中,SWT中的处理是在拖的过程中将Java的数据转化为本地保存的全局变量数据,然后在放的过程中,再从本地保存的全局变量中将数据取出。SWT中使用Transfer类来定义一个转化数据的过程。

要想理解拖放的全过程,关键是要理解3个概念:
拖放源(DragSource)、传输数据(Transfer)、拖放目标(DragTarget)。

文章转载地址为:http://www.blogjava.net/kristen/archive/2007/08/07/135001.html
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表