`

SWT DND的Snippet 和 剪贴板

 
阅读更多

链接:http://www.eclipse.org/swt/snippets/

 

• Drag and Drop
o drag text between two labels
o drag leaf items in a tree
o define my own data transfer type
o define a second data transfer type that subclasses the first
o define a default operation (in this example, Copy)
o determine data types available (win32 only)
o determine data types available (motif only)
o make a dropped data type depend on a target item in table
o drag text between two StyledText widgets
o drag text within a StyledText widget (with drag image)
o detect drag in a custom control
o drag and drop a URL
o drag and drop text between SWT and Swing
o drag and drop an object with a custom data transfer type from SWT to AWT/Swing

 

我的记录:

1.   SWTWork/ch10/DragTree,注意对TreeItem的操作,有可以他的父亲为Tree,也有可以使TreeItem。使用getParent或者getParentItem的方法。

2.   树的递归生成还是挺方便的,要是仅仅为了以一种树的显示,就不需要TreeView了,要是需要频繁数据操作才需要那种View

3.   SWTWork/ch10/ DragDropSample是个Table拖拽的例子。

4.   【好】Snippet171,定义了一个MyTransfer,继承ByteArrayTransfer类,当然在ByteArrayTransfer中的help中就有。学习将数据转化为字节数组的方法,注意遇到字符串的时候要首先输出字符串的长度,long就不需要、int也不需要因为这个是基本的数据类型,要不然字符串不知道到什么地方结束。读的时候正好相反。这里一下实现了两个TransferMyTransfer1MyTransfer2,其中MyTransfer2MyTransfer1的子类,源是支持拖动MyTransfer2,而它的拖动目标控件一个接受MyTransfer1,一个接受MyTransfer2.

5.   注意拖动目标控件只要能够接受你拖动的类型就可以实现拖动了,SWTWork/ch10/DragTree例子可以拖动到系统的其他地方,只要它接受字符串;下面就是我中Tree上面拖过的:如{000 11111测试目录}

6.   Snippet282ImageTransfer的使用,首先打开一个图像,这个图形到ImageButton上了,然后copy,这个图像和途径就到了剪贴板上去了,clear就把ImageButton的内容清空了,然后在paste,就可以讲剪贴板里面的内容再一次放的ImageButtonImageText上去了。

7.   Snippet185,根据目标控件能够接受的给拖放的数据。注意:DragSourceEventdataTypeDropTarget能够接受的数据类型,而DropTargetEventdataTypes则是DragSource能够提供的数据的类型,这是个数组,可以提供的有好多。通过定义currentDataType,能够确定解释什么类型的拖放数据,也就是说主动权是在DragSource一方。

8.   Snippet210,一个Text拖动到另一个Text

9.   Snippet257,一个Text内的拖动。设置了拖动时候的图标,会在鼠标位置显示出来。StyledText没有删除的方法用《text.replaceTextRange(selection.x + delta, length, "");》这个方法。文件内部的变量没有用全局变量,只是记住了,选择的位置了。这种方法就不好和系统交互了,可以资源用的少些。

10.  Snippet259,监听拖拽事件。这个类里面实现了一个自己的listMyList,是继承自Canvas,可学习自己定制SWT控件。gc.stringExtentcheckWidget ()

11.  Snippet284URLTransfer类型的拖动。

12.  Snippet300SWT中的Text,拖动到Swing中去,Swing中的Text不需要注册,直接是可以接受TextTransfer的。

13.  Snippet319,也定义了一个新的拖拽类型。也是SWTSwing,不过这次复杂一些。

14.  Snippet78,两个Label自己拖来拖去。

15.  Snippet79,也是定义一个拖拽类型,就是支持拖拽一个特殊的数据类。

16.  Snippet83,建了一个白板,在win上面拖东西,可以看出这次拖拽支持一些什么操作。

17.  Snippet84,一个label先一个Text拖拽,操作后,字符变了,看你有没有完成操作。

18.  Snippet91,这个还不错,Tree的拖动,只有叶子节点可以拖动,另外,放在哪儿还有一个横线提示,不错。

 

还有 关于剪贴板:

1.   Clipboard,是SWT本地拖拽的关键吧。

2.   Clipboard是系统唯一的剪贴板。

3.   Snippet122,剪贴板的使用,弹出菜单,复制,粘贴,向剪贴板中存放内容,要同时告诉剪贴板放入内容的类型,这个类型必须org.eclipse.swt.dnd.Transfer;复制和粘贴通过menuShown事件,在弹出的时候判断某个菜单项能不能用,复制在选择了字符后才有用,粘贴在剪贴板有内容,且内容是字符串才有用,复制一个快捷方式,粘贴就没用了。

4.   常用的Transfer 类型有TextTransferRTFTransferImageTransferFileTransferRTFTransfer表示RTF格式的一些数据;

 

分享到:
评论

相关推荐

    org.eclipse.swt.win32

    org.eclipse.swt.dnd.DND.class org.eclipse.swt.dnd.DNDEvent.class org.eclipse.swt.dnd.DNDListener.class org.eclipse.swt.dnd.DragSource.class org.eclipse.swt.dnd.DragSourceAdapter.class org.eclipse.swt....

    SWT(JFace)体验之复制粘贴

    import org.eclipse.swt.dnd.Clipboard; import org.eclipse.swt.dnd.RTFTransfer; import org.eclipse.swt.dnd.TextTransfer; import org.eclipse.swt.dnd.Transfer; import org.eclipse.swt.dnd.TransferData; ...

    dnd txt文档阅读

    总之,DND TXT文档阅读工具通过提供目录和快速查询功能,极大地提升了玩家对DND文档的阅读效率和理解深度。对于热爱DND游戏的玩家来说,这样的工具无疑是提高游戏体验的重要助手。在未来,随着技术的发展,我们期待...

    React-dnd js库学习

    React-DND的核心概念包括`DragSource`(拖动源)和`DropTarget`(放置目标)。`DragSource`是用户可以开始拖动操作的组件,而`DropTarget`则是接收被拖动元素的目标位置。通过定义连接器(connectors),这两个角色...

    DND跑团骰子软件

    DND跑团,全称为“龙与地下城”(Dungeons & Dragons),是一种深受玩家喜爱的角色扮演游戏,它以其丰富的剧情、自由的角色设定和策略性的游戏玩法在全球范围内拥有庞大的粉丝群体。在DND游戏中,骰子是决定角色行动...

    DND 中文快速查询手册

    《DND中文快速查询手册》是一本为玩家和游戏主持人提供的详尽参考资料,涵盖了桌面角色扮演游戏(Tabletop Role-Playing Game,简称TRPG)领域的经典系统——龙与地下城(Dungeons & Dragons,简称DND)。...

    第6章 SWT概述

    由于SWT和JFace的跨平台特性,开发者可以利用它们创建既能在Java应用程序中运行,也能在Eclipse插件环境中工作的代码。 总之,SWT是Java GUI开发的一个重要选择,它通过直接与操作系统交互提供了原生的性能和外观,...

    dnd数据采集源代码

    DND,全称为Data Network Diagnostics,是一种用于监控和管理网络设备,尤其是视频监控系统状态的工具。在本文中,我们将深入探讨DND数据采集源代码的核心概念、功能以及实现原理。 1. **端口号(Port Number)** ...

    react项目使用react-dnd实现拖拽排序

    在React项目中,拖拽排序是一项常见的交互需求,可以提供用户友好的界面体验。React DND(Drag and Drop)库是实现这一功能的...总之,React DND为React开发人员提供了强大的工具,使实现拖拽排序变得更加简单和直观。

    学习使用ReactDnD实现嵌套列表的拖拽排序

    ReactDnD的核心概念包括`DragSource`、`DropTarget`和`Connectors`。`DragSource`是可被拖动的元素,`DropTarget`是接收拖动元素的目标,而`Connectors`用于将这些源和目标连接起来。 1. **创建DragSource** 为了...

    DND_FormatTool

    对于初学者来说,DND格式工具的友好界面和清晰的指引是非常重要的。它不会让使用者感到困扰,即使是计算机操作经验不足的用户也能迅速掌握。同时,该工具的体积小巧,占用系统资源少,不会影响电脑的正常运行,这也...

    前端开源库-react-dnd

    3. **Connectors**:这是React DND内部用于连接DragSource和DropTarget的机制,确保状态更新能够正确地在源和目标之间同步。 4. **Monitor**:监控拖放操作的状态,例如是否正在拖动、拖动的类型等。开发者可以通过...

    react-dnd-html5-backend, HTML5后端响应 DnD [Legacy Repo ].zip

    react-dnd-html5-backend, HTML5后端响应 DnD [Legacy Repo ] React后端( 旧版知识库)** 注:响应dnd... 这里代码已经合并到响应dnd的主存储库中。官方支持HTML5后端的响应 DnD 。 有关使用情况信息,请参阅文档 。安

    Eclipse Swt/Jface核心应用 (01-03章)

    - **拖放操作**:讲解SWT和JFace支持的拖放(DND, Drag and Drop)功能,如何实现元素之间的拖放交互。 6. **实战演练** 在这三章中,你可能通过实例学习到如何创建一个简单的SWT应用,然后逐步引入JFace来提高代码...

    datagrid-dnd(可以拖放的datagrid)

    实现datagrid-dnd的关键在于JavaScript事件处理和DOM操作。在`datagrid-dnd.js`文件中,我们可以找到实现拖放行为的代码。这些代码可能包括: 1. **监听拖放事件**:使用jQuery的`mousedown`、`mousemove`和`...

    dnd_demo.zip

    在IT领域,前端开发中的用户交互体验至关重要,而“dnd_demo.zip”是一个演示如何使用EasyUI框架实现表格数据拖拽功能的小型示例。EasyUI是一个基于jQuery的UI库,它提供了丰富的组件和便捷的方式来构建用户界面。在...

    DND 完整版 汉化版

    DND 龙与地下城汉化版 基础规则 职业规则 技能规则 数据规则

    Swing组件的DnD拖拽深度分析

    Swing组件的拖放(Drag and Drop, DnD)功能是Java GUI编程中的一个重要特性,它允许用户通过直观的拖动操作在组件...同时,合理地设计和实现`Transferable`对象,以及正确配置和使用监听器,是成功实现DnD功能的关键。

    SWT收藏夹示例源代码

    在示例中,"swt带dnd应用的网址收藏夹源码"可能包含实现这一功能的代码,这涉及到`DragSource`和`DropTarget`类的使用。通过监听拖放事件,可以实现在树形视图中的元素移动,这在创建类似浏览器收藏夹的管理界面时...

    abc.zip_Java Word_SWT word_java 取 word_word

    在"WordReader.java"源代码中,应该包含了具体的实现细节,例如如何打开文件、如何使用SWT和Apache POI的API,以及如何处理提取后的文本。你可以通过反编译"WordReader.class"文件或直接查看源代码来学习具体实现。 ...

Global site tag (gtag.js) - Google Analytics