`
dongfengpo25
  • 浏览: 15004 次
  • 性别: Icon_minigender_1
  • 来自: 福州
文章分类
社区版块
存档分类
最新评论

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)。

文章转载地址为:http://www.blogjava.net/kristen/archive/2007/08/07/135001.html
分享到:
评论

相关推荐

    第6章 SWT概述

    除了上述核心包,SWT还提供了其他的辅助包,如org.eclipse.swt.dnd用于拖放操作,org.eclipse.swt.printing用于打印功能,以及org.eclipse.swt.accessibility支持无障碍访问。 JFace是在SWT基础上构建的一个高级...

    SWT-Designer教程.

    ### SWT-Designer教程知识点概述 #### 一、SWT-Designer简介 SWT-Designer是一种强大的工具,专门用于简化基于SWT(Standard Widget Toolkit)框架的用户界面设计过程。SWT是一个高效的图形库,用于构建跨平台的...

    SWT(JFace) FTP客户端实现

    在本案例中,我们将讨论如何使用SWT和JFace来创建一个简单的FTP客户端。 首先,我们需要导入必要的库,包括Apache Commons Net库,它提供了FTP客户端功能,以及Eclipse的JFace和SWT库,它们提供了GUI组件和交互模型...

    draw2d,swt

    ### draw2d与swt知识点概述 #### 一、Draw2d与SWT简介 - **Draw2d**: 是Eclipse平台中一个重要的组件库,主要用于构建复杂的图形用户界面(GUI),尤其适用于需要绘制图形、节点等复杂结构的应用场景。通过Draw2d...

    图形界面开发--AWT,Swing,SWT

    在介绍AWT、Swing、SWT之前,我们先来简单了解一下图形用户界面(GUI)的概念及其在Java开发中的重要性。随着计算机技术的发展,用户与计算机之间的交互方式也在不断进化。从最初的命令行界面(CLI)到如今广泛使用的...

    swt designer详细设计

    它为开发人员提供了一个直观的拖放界面来设计 SWT 和 JFace 控件,并自动生成相应的 Java 代码。这使得 GUI 开发变得更加高效、快捷。 #### GUI 构建工具概述 SWT Designer 作为一种图形用户界面构建工具,旨在...

    EclipseSWTDesigner使用手册

    - **SWT Designer的解决方案**:通过将SWT Designer作为插件集成到Eclipse中,解决了这一问题,使得界面设计更加直观高效。 #### 三、SWT Designer插件介绍 - **获取方式**: - 免费版:可从官方网站下载受限版本...

    第十八章 图形界面开发--AWT,Swing,SWT.pdf

    在使用Jigloo开发SWT应用的过程中,可能会遇到一些常见的问题,这些问题通常可以通过查阅官方文档或社区资源来解决。 ##### 18.4.5 Jigloo开发Swing应用 除了SWT之外,Jigloo也可以用来开发Swing应用程序,提供了...

    SWT 教程

    3. **丰富的组件**:SWT提供了各种常见的用户界面元素,如按钮、文本框、列表、树形视图、表格等,同时支持拖放操作、剪贴板交互等高级功能。 4. **事件驱动模型**:SWT采用事件驱动模型,允许开发者对用户交互进行...

    Eclipse_Swt_Jface_核心应用_部分19

    第10章 SWT中的拖放支持 211 10.1 可拖放的树 211 10.2 拖放原理概述 214 10.3 拖放源(DragSource) 215 10.3.1 创建拖放源对象 215 10.3.2 定义拖放源数据传输类型 215 10.3.3 处理拖放源事件 216 ...

    Lotus_Notes_中_RichTextEditor_组件的开发

    6. **拖放支持**:支持拖放操作,例如拖放图片、文本等元素到编辑器中。 7. **链接监听**:可以通过监听链接点击事件来实现特定功能,如打开新窗口等。 8. **拼写检查**:提供全篇或实时的拼写检查功能,支持多达 29...

    Eclipse插件开发学习笔记1-8章

    2. **SWT/JFace概述** (04第2章 SWT/JFace概述.pdf) - SWT(Standard Widget Toolkit)是Eclipse提供的底层图形用户界面库,它提供了与操作系统紧密集成的UI组件。 - JFace是建立在SWT之上的更高层次的API,简化...

    eclipse插件开发学习笔记

    - SWT还支持一些高级功能,比如使用System Tray、构建不规则形状的窗口等,这些特性可以帮助开发者创建更加独特和吸引人的应用程序。 #### 三、容器与布局管理器 **5.1 Composite** - Composite是一个容器控件,它...

    自带各种插件的eclipse网站

    ### Eclipse IDE及其插件概述 #### 一、Eclipse简介 Eclipse是一个开源的、可扩展的集成开发环境(IDE),主要用于Java应用开发,但通过安装不同的插件,也可支持其他编程语言,如C++、PHP等。它由IBM公司发起,并...

    SwtJfaceInAction

    13. **高级特性**:涵盖了SWT和JFace的一些高级功能,如拖放操作、打印支持、国际化和本地化等。 14. **超越SWT和JFace**:这部分可能涉及了如何将SWT和JFace与其他技术(如RCP、EMF、GMF等)集成,以构建更复杂的...

    Eclipse 插件汇总

    它提供了一种直观的方法来创建用户界面,类似于其他可视化开发工具中的拖放功能。 - **官方网站**:http://cloudgarden.com/jigloo/index.html - **适用版本**:Java 1.4 或 Java 1.5 - **安装步骤**:下载插件并...

    Eclipse插件开发指南

    SWTDeginer提供了直观的拖放界面设计,支持实时预览,大大简化了SWT应用程序的开发过程。通过设置组件属性、绑定事件处理器,可以快速构建复杂的用户界面。 **3.1.4 使用SWTDeginer进行界面开发的注意事项** - ...

Global site tag (gtag.js) - Google Analytics