请参见:
描述
接口摘要 | |
---|---|
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 ,将 DragSourceDragEvent 从 DragSourceContextPeer 传递给向 DragSourceContext 及其关联 DragSource 注册的 DragSourceListener 。 |
DragSourceDropEvent | 通过 DragSourceContext ,将 DragSourceDropEvent 从 DragSourceContextPeer 传递给向 DragSourceContext 及其关联 DragSource 注册的 DragSourceListener 的 dragDropEnd 方法。 |
DragSourceEvent | 此类是 DragSourceDragEvent 和 DragSourceDropEvent 的基类。 |
DropTarget | 在 Drag 和 Drop 操作期间,当 Component 希望接受 drop 时,DropTarget 与 Component 有关联。 |
DropTarget.DropTargetAutoScroller | 此受保护的嵌套类实现自动滚动 |
DropTargetAdapter | 接收放置目标事件的抽象适配器类。 |
DropTargetContext | 每当与 Drag 和 Drop 操作相关的逻辑光标和与 DropTarget 相关的 Component 的可见几何结构重合时,就创建一个 DropTargetContext 。 |
DropTargetDragEvent | 通过 dragEnter() 和 dragOver() 方法将 DropTargetDragEvent 发送给 DropTargetListener 。 |
DropTargetDropEvent | 通过 DropTargetListener drop() 方法发送 DropTargetDropEvent 。 |
DropTargetEvent | DropTargetEvent 是 DropTargetDragEvent 和 DropTargetDropEvent 的基类。 |
MouseDragGestureRecognizer | DragGestureRecognizer 的抽象子类,它定义了一个基于鼠标动作的 DragGestureRecognizer 。 |
异常摘要 | |
---|---|
InvalidDnDOperationException | java.awt.dnd 包中的各种方法都会抛出此异常。 |
Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示元素逻辑相关的实体之间传输信息。Drag 和 Drop 通常由使用适当输入设备的用户的实际操作所驱动,它既提供在对 GUI 显示元素导航期间启用连续反馈(关于传输给用户的任何后续数据的可能结果)的机制,又提供支持任何后续数据协商和传输的设施。
此包定义了在 Java 中执行 Drag 和 Drop 操作所需的类和接口。它定义了用于拖动源和放置目标的类,以及用于传输正被拖动的数据的事件。此包还在整个 Drag 和 Drop 操作期间提供一种向用户提供可视反馈的方法。
典型的 Drag 和 Drop 操作可以分解为以下几种状态(未完全按顺序):
Component
) 相关的 DragSource
,以启动对某个潜在 Transferable
数据的 Drag 和 Drop 操作。
DropTarget
,很可能要使用 Transferable
数据类型。
Component
上启动的 Drag 操作,可以从 DragSource
获取 DragGestureRecognizer
,并让它与一个 Component
相关联。
Component
上发起 Drag 操作,已注册的 DragGestureRecognizer
检测到该操作,并通知 DragGestureListener
。 注:尽管此 API 一直认为拖放操作是由用户的实际操作激发的,但这并不排除由适当的 DragSource
实现发出的以编程方式驱动的 DnD 操作。此包包含用于识别鼠标设备操作的抽象类 MouseDragGestureRecognizer
。平台可以提供其他抽象子类,以支持其他输入设备或特定的 Component
类语义。
DragGestureListener
使得 DragSource
按用户的行为启动 Drag 和 Drop 操作,或者激活 GUI 光标,或呈现此操作主题项的 Image
。
DropTarget
的 Component
进行定位时,根据受支持的操作和所涉及的数据类型,DragSource
接收通知以提供 "Drag Over" 反馈效果,而 "DropTarget
" 接收通知以提供 "Drag Under" 反馈效果。 该操作本身可以在整个 GUI 层次结构中移动逻辑光标,交叉 GUI 组件的几何形状,并可能导致逻辑“Drag”光标进入、跨越、随后离开 Component
及相关的 DropTarget
。
DragSource
对象向用户显示“Drag Over”反馈,一般情况下是通过激活与逻辑光标相关的 GUI Cursor
来实现的。
DropTarget
对象向用户显示“Drag Under”反馈,一般情况下是通过在 GUI Cursor 下将动画呈现到相关 GUI Component
来实现的。
反馈结果的确认、数据转换的最终成败(只发生一种)是按如下方式参数化的:
DragSource
和 DropTarget
支持:复制、移动或引用(链接)。
DragSource
所提供的数据类型集合和 DropTarget
可理解的数据类型集合的交集来实现。
DragSource
和 DropTarget
都会接收到通知,该通知包含与 DragSource
相关的信息,并且通过 Transferable
对象导致信息的流通和信息类型的转换。