模块 java.desktop
Package java.awt.dnd
拖放是在许多图形用户界面系统中发现的直接操纵手势,其提供了在GUI中与表示元素逻辑相关联的两个实体之间传递信息的机制。 通常由使用适当输入设备的人类用户的物理姿势驱动,拖放提供了一种机制,以实现关于在GUI中的呈现元素的导航期间向用户的任何后续数据传输的可能结果的连续反馈,以及提供任何后续数据协商和转移的设施。
该包定义了在Java中执行拖放操作所需的类和接口。 它定义了拖动源和放置目标的类,以及用于传输被拖动数据的事件。 该软件包还提供了一种在拖放操作期间向用户提供视觉反馈的方法。
典型的拖放操作可以分解为以下状态(不完全顺序):
-
DragSource
成立,与GUI中的一些表示元素(Component
)相关联,以启动一些潜在的Transferable
数据的拖放。 - 1个或多个
DropTarget
进入/不存在,与GUI(组件)中的表示元素相关联,可能消耗Transferable
数据类型。 - 甲
DragGestureRecognizer
从所得DragSource
并且与相关联的Component
,以便跟踪和由用户在识别任何拖动启动动作Component
。 - 用户在
Component
执行拖动手势,已注册DragGestureRecognizer
,并通知其DragGestureListener
。注意:尽管此API始终将拖放操作的刺激引用为人类用户的物理手势,但这并不排除在给定适当实现
DragSource
情况下以编程方式驱动的DnD操作。 该软件包包含用于识别鼠标设备手势的抽象类MouseDragGestureRecognizer
。 平台可以提供其他抽象子类以支持其他输入设备或特定的Component
类语义。 -
DragGestureListener
使DragSource
代表用户启动拖放操作,可能为GUI光标设置动画和/或渲染作为操作Image
的项目的Image
。 - 当用户手势在GUI中导航
Component
(s)与关联的DropTarget
(s)时,DragSource
接收通知以提供“拖过”反馈效果,并且DropTarget
(s)接收通知以提供“拖拽” “基于所支持的操作和所涉及的数据类型的反馈效果。
手势本身在GUI层级上移动逻辑光标,与GUI组件的几何形状相交,可能导致逻辑“拖动”光标进入,交叉,并且随后离开Component
(s)和相关联的DropTarget
(s)。
DragSource
对象向用户显示“拖过”反馈,在典型情况下通过动画化与逻辑光标相关联的GUI Cursor
。
在典型情况下,通过将动画渲染到GUI光标下的相关GUI Component
(s)中,对象显示“ DropTarget
拖动”反馈给用户。
如果出现反馈效应的确定以及数据传输的最终成功或失败,则参数化如下:
- 通过用户选择的传输“操作”,并由
DragSource
和DropTarget
:复制,移动或参考(链接)。 - 由
DragSource
提供的数据类型集的DragSource
和DragSource
的数据类型DropTarget
。 - 当用户终止拖动操作(通常导致成功丢弃)时,
DragSource
和DropTarget
都会通过DragSource
DropTarget
接收包含并通过类型协商和传输与DragSource
相关联的信息的Transferable
。
- 从以下版本开始:
- 1.2
-
接口摘要 接口 描述 Autoscroll 在DnD操作期间,用户可能希望将操作的主题放在当前对用户不可见的可滚动GUI控件的区域上。DragGestureListener 用于接收拖动手势事件的侦听器界面。DragSourceListener DragSourceListener
为拖放操作的DragSourceListener
定义事件接口,以跟踪用户手势的状态,并在整个拖放操作期间向用户提供适当的“拖动”反馈。DragSourceMotionListener 用于在拖动操作期间接收鼠标移动事件的侦听器接口。DropTargetListener DropTargetListener
接口是DropTarget
类使用的回调接口,用于提供涉及主题DropTarget
的DnD操作的通知。 -
类摘要 类 描述 DnDConstants 此类包含表示拖放操作要执行的操作类型的常量值。DragGestureEvent 当特定的DragGestureRecognizer
检测到正在跟踪的Component
上发生了与平台相关的拖动启动手势时,DragGestureEvent
被传递给DragGestureListener
的dragGestureRecognized()方法。DragGestureRecognizer DragGestureRecognizer
是一个抽象基类,用于指定与平台相关的侦听器,该侦听器可以与特定的Component
关联,以便识别与平台相关的拖动启动手势。DragSource DragSource
是负责启动拖放操作的实体,可以在许多场景中使用:每个JVM的1个默认实例,用于该JVM的生命周期。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包中的各种方法抛出此异常。