java.awt.dnd

接口
异常
Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示元素逻辑相关的实体之间传输信息。

请参见:
          描述

接口摘要
Autoscroll 在 DnD 操作期间,用户有可能希望将操作目标放入一个可滚动的 GUI 控件区域中,而该区域当前对用户是不可见的。
DragGestureListener 此接口源于 DragGestureRecognizer,当该(子)类的对象检测到拖动启动动作时,调用此接口。
DragSourceListener DragSourceListener 定义了事件接口,Drag 和 Drop 操作的始发端使用它来跟踪用户操作的状态,并通过 Drag 和 Drop 操作为用户提供合适的“拖动结束”反馈。
DragSourceMotionListener 用于接收拖动操作期间鼠标移动事件的侦听器接口。
DropTargetListener DropTargetListener 接口是 DropTarget 类所使用的回调接口,用于提供所涉及的 DropTarget 的 DnD 操作的通知。
 

类摘要
DnDConstants 此类包含了表示 Drag 和 Drop 操作所执行的操作类型的常量值。
DragGestureEvent 当特定的 DragGestureRecognizer 检测到它正在跟踪的 Component 上已发生与平台相关的拖动启动动作时,将 DragGestureEvent 传递给 DragGestureListener 的 dragGestureRecognized() 方法。
DragGestureRecognizer DragGestureRecognizer 是一个针对与平台相关的侦听器规范的抽象基类,它可以与特定 Component 关联以标识与平台相关的拖动开始动作。
DragSource DragSource 是负责开始 Drag 和 Drop 操作的实体,可以用在如下场景中: JVM 生命周期中每个 JVM 的一个默认实例。
DragSourceAdapter 用于接收拖动源事件的抽象适配器类。
DragSourceContext DragSourceContext 类负责管理 Drag 和 Drop 协议的起始端。
DragSourceDragEvent 通过 DragSourceContext,将 DragSourceDragEventDragSourceContextPeer 传递给向 DragSourceContext 及其关联 DragSource 注册的 DragSourceListener
DragSourceDropEvent 通过 DragSourceContext,将 DragSourceDropEventDragSourceContextPeer 传递给向 DragSourceContext 及其关联 DragSource 注册的 DragSourceListenerdragDropEnd 方法。
DragSourceEvent 此类是 DragSourceDragEventDragSourceDropEvent 的基类。
DropTarget 在 Drag 和 Drop 操作期间,当 Component 希望接受 drop 时,DropTargetComponent 有关联。
DropTarget.DropTargetAutoScroller 此受保护的嵌套类实现自动滚动
DropTargetAdapter 接收放置目标事件的抽象适配器类。
DropTargetContext 每当与 Drag 和 Drop 操作相关的逻辑光标和与 DropTarget 相关的 Component 的可见几何结构重合时,就创建一个 DropTargetContext
DropTargetDragEvent 通过 dragEnter() 和 dragOver() 方法将 DropTargetDragEvent 发送给 DropTargetListener
DropTargetDropEvent 通过 DropTargetListener drop() 方法发送 DropTargetDropEvent
DropTargetEvent DropTargetEventDropTargetDragEventDropTargetDropEvent 的基类。
MouseDragGestureRecognizer DragGestureRecognizer 的抽象子类,它定义了一个基于鼠标动作的 DragGestureRecognizer
 

异常摘要
InvalidDnDOperationException java.awt.dnd 包中的各种方法都会抛出此异常。
 

软件包 java.awt.dnd 的描述

Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示元素逻辑相关的实体之间传输信息。Drag 和 Drop 通常由使用适当输入设备的用户的实际操作所驱动,它既提供在对 GUI 显示元素导航期间启用连续反馈(关于传输给用户的任何后续数据的可能结果)的机制,又提供支持任何后续数据协商和传输的设施。

此包定义了在 Java 中执行 Drag 和 Drop 操作所需的类和接口。它定义了用于拖动源和放置目标的类,以及用于传输正被拖动的数据的事件。此包还在整个 Drag 和 Drop 操作期间提供一种向用户提供可视反馈的方法。

典型的 Drag 和 Drop 操作可以分解为以下几种状态(未完全按顺序):

  • 存在与 GUI 中某个显示元素 (Component) 相关的 DragSource,以启动对某个潜在 Transferable 数据的 Drag 和 Drop 操作。

  • 进入/离开一个或多个与 GUI 中显示元素(组件)相关的 DropTarget,很可能要使用 Transferable 数据类型。

  • 为了跟踪和识别任何由用户在 Component 上启动的 Drag 操作,可以从 DragSource 获取 DragGestureRecognizer,并让它与一个 Component 相关联。

  • 用户在 Component 上发起 Drag 操作,已注册的 DragGestureRecognizer 检测到该操作,并通知 DragGestureListener

    注:尽管此 API 一直认为拖放操作是由用户的实际操作激发的,但这并不排除由适当的 DragSource 实现发出的以编程方式驱动的 DnD 操作。此包包含用于识别鼠标设备操作的抽象类 MouseDragGestureRecognizer。平台可以提供其他抽象子类,以支持其他输入设备或特定的 Component 类语义。

  • DragGestureListener 使得 DragSource 按用户的行为启动 Drag 和 Drop 操作,或者激活 GUI 光标,或呈现此操作主题项的 Image

  • 当用户对 GUI 中带相关 DropTargetComponent 进行定位时,根据受支持的操作和所涉及的数据类型,DragSource 接收通知以提供 "Drag Over" 反馈效果,而 "DropTarget" 接收通知以提供 "Drag Under" 反馈效果。

该操作本身可以在整个 GUI 层次结构中移动逻辑光标,交叉 GUI 组件的几何形状,并可能导致逻辑“Drag”光标进入、跨越、随后离开 Component 及相关的 DropTarget

DragSource 对象向用户显示“Drag Over”反馈,一般情况下是通过激活与逻辑光标相关的 GUI Cursor 来实现的。

DropTarget 对象向用户显示“Drag Under”反馈,一般情况下是通过在 GUI Cursor 下将动画呈现到相关 GUI Component 来实现的。

反馈结果的确认、数据转换的最终成败(只发生一种)是按如下方式参数化的:

  • 由用户选择的传输“操作”,并受 DragSourceDropTarget 支持:复制、移动或引用(链接)。

  • 通过 DragSource 所提供的数据类型集合和 DropTarget 可理解的数据类型集合的交集来实现。

  • 当用户终止 drag 操作时,一般会导致 Drop 操作成功,DragSourceDropTarget 都会接收到通知,该通知包含与 DragSource 相关的信息,并且通过 Transferable 对象导致信息的流通和信息类型的转换。

从以下版本开始:
1.2