1.概况介绍
Drag&Drop(后简称DND)可以增强程序的可操作性,提高程序的可视化操作能力。从而提高程序的吸引力。(表面功夫也是很重要的)
在SWT下实现DND主要涉及三个类和两个接口以及两个事件类:
类:
org.eclipse.swt.dnd.DragSource
org.eclipse.swt.dnd.DropTarget
org.eclipse.swt.dnd.Transfer
接口:
org.eclipse.swt.dnd.DragSourceListener
org.eclipse.swt.dnd.DropTargetListener
事件类:
org.eclipse.swt.dnd.DropTargetEvent
org.eclipse.swt.dnd.DragSourceEvent
我学习的资料:
1. 《SWT/JFace in Action》
http://chinateam.myrice.com/matrix/java/j2se/java_ide/Eclipse%20in%20Action.pdf
2.《Guide to SWT and JFace》
http://www.fixdown.com/soft/21244.htm
3. Drag and Drop
http://www.eclipse.org/articles/Article-SWT-DND/DND-in-SWT.html#_dt10D
4. Drag and Drop in the Eclipse UI
http://www.eclipse.org/articles/Article-Workbench-DND/drag_drop.html
相比起来,在对DND的说明方面,后两个文献要详尽的多。如果大家的英文比较好,我建议还是直接看后两个文献。
2.Drag and Drop的实现过程
Drag&Drop由两个步骤组成:Drag和Drop过程(废话,不过为了表述清楚还是说一下吧。)。
2.1 Drag过程
要实现Drag过程的步骤如下。
1.确定DND操作源组件,并声称相应的DragSource。
DragSource类和后面要提到的DropTarget都属于封装类,构造函数的参数表均为 (Control control, int style)。
通过将一个Control传递给DragSource的构造函数,一个组件可以被定为一个DND操作源,构造函数的第二个参数表示DND操作源所允许的操作方式。需要注意的是,不能将一个组件指定为多个DND操作源,否则会产生SWTError[3](比较严重)。换句话说,一个组件只能为DND操作提供一类数据。
上面涉及到的style参数决定了DND操作接收者可以对传送过去的数据采取的操作方式,style的值可以是
DND.DROP_COPY, DND.DROP_MOVE 和DND.DROP_LINK 或者是三者中的按位或的结果。注意,这三个值是org.eclipse.swt.dnd.DND的静态成员。
2.确定DND操作传输的数据的类型
3.设置监听器,控制Drag过程的运作
SWT下实现Drag and Drop(DND)学习笔记(写作中...)
最新推荐文章于 2021-11-19 08:35:54 发布