Module
java.desktop
Package java.awt.dnd
拖放是在许多图形用户界面系统中发现的直接操纵手势,它提供了一种在逻辑上与GUI中的表示元素相关联的实体之间传递信息的机制。
通常由使用适当输入设备的人类用户的身体手势驱动,拖放提供了一种机制,以便在通过GUI中的呈现元素的导航期间启用关于任何后续数据传送到用户的可能结果的连续反馈,以及提供任何后续数据协商和转让的设施。
此包定义了在Java中执行拖放操作所需的类和接口。 它定义了drag-source和drop-target的类,以及用于传输被拖动的数据的事件。 该包还提供了在拖放操作的持续时间内向用户提供视觉反馈的方法。
典型的拖放操作可以分解成以下状态(不是完全依次):
- A
DragSource
存在,与GUI中的一些表示元素(Component
)相关联,以启动一些潜在的Transferable
数据的拖放。 - 1或更多的
DropTarget
(s)进入/退出存在,与GUI(组件)中的表示元素相关联,潜在地能够消耗Transferable
数据类型。 - 甲
DragGestureRecognizer
从所得DragSource
并且与相关联的Component
,以便跟踪和由用户在识别任何拖动启动动作Component
。 - 用户通过
Component
(其注册的DragGestureRecognizer
检测到的拖动手势,并通知其DragGestureListener
。注意:虽然这个API一贯地指的是一个拖放操作是由人类用户进行的物理手势的刺激,但是在给出适当的
DragSource
实现的情况下,这并不排除编程驱动的DnD操作。 该包包含用于识别鼠标设备手势的抽象类MouseDragGestureRecognizer
。 其他抽象子类可以由平台提供,以支持其他输入设备或特定的Component
类语义。 -
DragGestureListener
导致DragSource
代表用户启动拖放操作,可能动画化GUI Cursor和/或呈现作为操作Image
的项目的Image
。 - 当用户手势导航超过
Component
在具有相关联的GUI(或多个)DropTarget
(S),所述DragSource
接收以便提供“拖过”反馈效果通知,并且DropTarget
(一个或多个),以提供“拖放在接收通知“反馈效应基于所支持的操作和所涉及的数据类型。
手势本身将逻辑游标移动通过GUI层次结构,与GUI组件的几何相交,可能导致逻辑“拖”光标进入,交叉,随后离开Component
(s)和关联的DropTarget
(s)。
DragSource
对象通过动画化与逻辑游标相关联的GUI Cursor
,在典型的情况下向用户显示“拖曳”反馈。
DropTarget
对象通过将动画渲染到GUI Cursor下的关联GUI Component
,在典型的情况下,向用户显示“Drag Under”反馈。
应该发生反馈效应的确定以及数据传输的最终成功或失败,参数如下:
- 通过用户选择的传输“操作”,并由
DragSource
和DropTarget
:复制,移动或引用(链接)支持。 - 由
DragSource
提供的一组数据类型和DropTarget
理解的数据类型DropTarget
。 - 当用户终止拖动操作,通常导致一个成功的掉落,无论是
DragSource
和DropTarget
接收通知包括,并导致类型的协商和的,与相关联的信息传送DragSource
经由Transferable
对象。
- 从以下版本开始:
- 1.2
-
接口摘要 接口 描述 Autoscroll 在DnD操作期间,用户可能希望将操作的主题放在用户当前不可见的可滚动GUI控件的区域上。DragGestureListener 用于接收拖动手势事件的侦听器界面。DragSourceListener DragSourceListener
定义了用于跟踪用户手势状态的拖放操作的发起者的事件接口,并在拖放操作中向用户提供适当的“拖拽”反馈。DragSourceMotionListener 用于在拖动操作期间接收鼠标运动事件的侦听器界面。DropTargetListener DropTargetListener
接口是DropTarget
类使用的回调接口,用于提供涉及主题DropTarget
的DnD操作的通知。 -
类摘要 Class 描述 DnDConstants 此类包含表示由拖放操作执行的操作类型的常量值。DragGestureEvent 当特定的DragGestureRecognizer
检测到正在跟踪的Component
上发生平台相关的拖动启动手势时,DragGestureEvent
将传递给DragGestureListener
的dragGestureRecognized()方法。DragGestureRecognizer DragGestureRecognizer
是一个用于规范平台相关的监听器的抽象基类,可以与特定的Component
相关联,以便识别平台相关的拖动启动手势。DragSource DragSource
是负责启动拖放操作的实体,可用于多种情况:在该JVM的生命周期中,每个JVM使用1个默认实例。DragSourceAdapter 用于接收拖动源事件的抽象适配器类。DragSourceContext DragSourceContext
类负责管理拖放协议的发起方。DragSourceDragEvent DragSourceDragEvent
从DragSourceContextPeer
通过DragSourceContext
发送到DragSourceListener
注册DragSourceContext
及其相关联的DragSource
。DragSourceDropEvent 所述DragSourceDropEvent
从递送DragSourceContextPeer
,经由DragSourceContext
,到dragDropEnd
的方法DragSourceListener
与注册小号DragSourceContext
和与其相关联的DragSource
。DragSourceEvent 这个类是DragSourceDragEvent
和DragSourceDropEvent
的基类。DropTarget 该DropTarget
与相关Component
时Component
希望接受拖放操作期间下降。DropTarget.DropTargetAutoScroller 这个受保护的嵌套类实现自动滚动DropTargetAdapter 用于接收丢弃目标事件的抽象适配器类。DropTargetContext 甲DropTargetContext
每当用拖放操作相关联的逻辑光标用的可见几何一致创建Component
与相关联DropTarget
。DropTargetDragEvent 所述DropTargetDragEvent
被输送到DropTargetListener
经由其dragEnter事件()和的dragover()方法。DropTargetDropEvent DropTargetDropEvent
是通过DropTargetListener
drop()方法提供的。DropTargetEvent DropTargetEvent
是DropTargetDragEvent
和DropTargetDropEvent
的基础类。MouseDragGestureRecognizer DragGestureRecognizer
这个抽象子类定义了一个基于鼠标的手势的DragGestureRecognizer
。 -
异常摘要 异常 描述 InvalidDnDOperationException java.awt.dnd包中的各种方法抛出此异常。