模块
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都会通过DragSourceDropTarget接收包含并通过类型协商和传输与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通过DropTargetListenerdrop()方法提供。DropTargetEvent DropTargetEvent是DropTargetDragEvent和DropTargetDropEvent的基类。MouseDragGestureRecognizer 这个抽象的子类DragGestureRecognizer限定DragGestureRecognizer对基于鼠标的手势。 -
异常摘要 异常 描述 InvalidDnDOperationException java.awt.dnd包中的各种方法抛出此异常。