Posted on 2007-08-07 16:55
百花岛主 阅读(2021)
评论(0) 编辑 收藏 所属分类:
Eclipse学习笔记
SWT中的拖放支持 - 拖放原理概述
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)。