- java.lang.Object
-
- java.awt.dnd.DragSource
-
- 实现的所有接口
-
Serializable
public class DragSource extends Object implements Serializable
DragSource是负责启动拖放操作的实体,可以在许多场景中使用:- 每个JVM的1个默认实例,用于该JVM的生命周期。
- 每类潜在的Drag Initiator对象(例如TextField)有1个实例。 [依赖于实施]
- 每个特定
Component实例1,或与GUI中的Component实例关联的特定Component应用程序的对象。 [依赖于实施] - 其他一些任意关联。 [依赖于实施]
DragSource获得,一个DragGestureRecognizer还应获得的关联DragSource与特定Component。用户手势的初始解释以及随后的拖动操作的开始是实施
Component的责任,其通常由DragGestureRecognizer实现。当发生拖动手势时,应调用
DragSource的startDrag()方法,以便处理用户的导航手势和拖放协议通知的传递。DragSource只允许单个拖放操作在任何时候都是当前的,并且应该通过抛出IllegalDnDOperationException拒绝任何进一步的startDrag()请求,直到现存操作完成为止。的startDrag()方法调用createDragSourceContext()方法来实例化一个适当
DragSourceContext和关联DragSourceContextPeer这一点。如果拖放系统由于某种原因无法启动拖动操作,则startDrag()方法会抛出
java.awt.dnd.InvalidDnDOperationException以指示此类情况。 通常,当底层平台系统未处于启动拖动的状态或指定的参数无效时,将引发此异常。请注意,在拖动期间,在拖动操作开始时由源公开的操作集可能不会更改,直到操作完成。 在
DragSource的操作期间,操作是恒定的。- 从以下版本开始:
- 1.2
- 另请参见:
- Serialized Form
-
-
字段汇总
字段 变量和类型 字段 描述 static CursorDefaultCopyDrop默认值Cursor与复制操作一起使用,表示当前允许放置。static CursorDefaultCopyNoDrop默认值Cursor与复制操作一起使用,表示当前不允许放置。static CursorDefaultLinkDrop默认值Cursor与链接操作一起使用,表示当前允许放置。static CursorDefaultLinkNoDrop默认值Cursor与链接操作一起使用,指示当前不允许放置。static CursorDefaultMoveDrop默认值Cursor与移动操作一起使用,表示当前允许放置。static CursorDefaultMoveNoDrop默认值Cursor与移动操作一起使用,表示当前不允许放置。
-
构造方法摘要
构造方法 构造器 描述 DragSource()创建一个新的DragSource。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 voidaddDragSourceListener(DragSourceListener dsl)将指定的DragSourceListener添加到此DragSource以在使用此DragSource启动的拖动操作期间接收拖动源事件。voidaddDragSourceMotionListener(DragSourceMotionListener dsml)将指定的DragSourceMotionListener添加到此DragSource以在使用此DragSource启动的拖动操作期间接收拖动动作事件。DragGestureRecognizercreateDefaultDragGestureRecognizer(Component c, int actions, DragGestureListener dgl)创建一个新的DragGestureRecognizer实现的默认抽象子类DragGestureRecognizer这个DragSource,并设置指定Component和DragGestureListener新创建的对象上。<T extends DragGestureRecognizer>
TcreateDragGestureRecognizer(类<T> recognizerAbstractClass, Component c, int actions, DragGestureListener dgl)创建一个新的DragGestureRecognizer,它实现指定的抽象子类DragGestureRecognizer,并在新创建的对象上设置指定的Component和DragGestureListener。protected DragSourceContextcreateDragSourceContext(DragGestureEvent dgl, Cursor dragCursor, Image dragImage, Point imageOffset, Transferable t, DragSourceListener dsl)创建DragSourceContext以处理当前拖动操作。static DragSourcegetDefaultDragSource()获取与基础平台关联的DragSource对象。DragSourceListener[]getDragSourceListeners()获取在DragSourceListener注册的所有DragSourceListenerDragSource。DragSourceMotionListener[]getDragSourceMotionListeners()获取在DragSourceMotionListener注册的所有DragSource。static intgetDragThreshold()返回拖动手势运动阈值。FlavorMapgetFlavorMap()此方法返回FlavorMap这个DragSource。<T extends EventListener>
T[]getListeners(类<T> listenerType)获取当前注册的所有对象FooListener在这个SDragSource。static booleanisDragImageSupported()报告是否在底层平台上提供了拖动Image支持。voidremoveDragSourceListener(DragSourceListener dsl)删除指定DragSourceListener从这个DragSource。voidremoveDragSourceMotionListener(DragSourceMotionListener dsml)删除指定DragSourceMotionListener从这个DragSource。voidstartDrag(DragGestureEvent trigger, Cursor dragCursor, Transferable transferable, DragSourceListener dsl)开始一拖,考虑到DragGestureEvent启动拖动,初步Cursor用,Transferable拖动的目标数据和DragSourceListener。voidstartDrag(DragGestureEvent trigger, Cursor dragCursor, Transferable transferable, DragSourceListener dsl, FlavorMap flavorMap)开始一拖,考虑到DragGestureEvent启动拖动,初步Cursor用,Transferable拖动的目标数据,该DragSourceListener和FlavorMap。voidstartDrag(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point dragOffset, Transferable transferable, DragSourceListener dsl)开始一拖,考虑到DragGestureEvent启动拖动,初步Cursor用,Image拖动时,该偏移Image从的热点起源Cursor在触发,拖动的目标数据的瞬间,和DragSourceListener。voidstartDrag(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point imageOffset, Transferable transferable, DragSourceListener dsl, FlavorMap flavorMap)开始一拖,考虑到DragGestureEvent启动拖动,初步Cursor用,Image拖动,偏移量的Image从的热点起源Cursor在扳机的瞬间,Transferable拖动的目标数据,DragSourceListener和FlavorMap。
-
-
-
字段详细信息
-
DefaultCopyDrop
public static final Cursor DefaultCopyDrop
默认值Cursor与复制操作一起使用,表示当前允许放置。null如果GraphicsEnvironment.isHeadless()返回true。
-
DefaultMoveDrop
public static final Cursor DefaultMoveDrop
默认值Cursor与移动操作一起使用,表示当前允许放置。null如果GraphicsEnvironment.isHeadless()返回true。
-
DefaultLinkDrop
public static final Cursor DefaultLinkDrop
默认值Cursor,用于指示当前允许放置的链接操作。null如果GraphicsEnvironment.isHeadless()返回true。
-
DefaultCopyNoDrop
public static final Cursor DefaultCopyNoDrop
默认值Cursor与复制操作一起使用,表示当前不允许放置。null如果GraphicsEnvironment.isHeadless()返回true。
-
DefaultMoveNoDrop
public static final Cursor DefaultMoveNoDrop
默认值Cursor与移动操作一起使用,表示当前不允许放置。null如果GraphicsEnvironment.isHeadless()返回true。
-
DefaultLinkNoDrop
public static final Cursor DefaultLinkNoDrop
默认值Cursor与链接操作一起使用,表示当前不允许删除。null如果GraphicsEnvironment.isHeadless()返回true。
-
-
构造方法详细信息
-
DragSource
public DragSource() throws HeadlessException创建一个新的DragSource。- 异常
-
HeadlessException- 如果GraphicsEnvironment.isHeadless()返回true - 另请参见:
-
GraphicsEnvironment.isHeadless()
-
-
方法详细信息
-
getDefaultDragSource
public static DragSource getDefaultDragSource()
获取与底层平台关联的DragSource对象。- 结果
- 平台DragSource
- 异常
-
HeadlessException- 如果GraphicsEnvironment.isHeadless()返回true - 另请参见:
-
GraphicsEnvironment.isHeadless()
-
isDragImageSupported
public static boolean isDragImageSupported()
报告是否在底层平台上提供了拖动Image支持。- 结果
- 如果此平台上提供了“拖动图像”支持
-
startDrag
public void startDrag(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point imageOffset, Transferable transferable, DragSourceListener dsl, FlavorMap flavorMap) throws InvalidDnDOperationException
开始一拖,考虑到DragGestureEvent启动拖动,初步Cursor用,Image拖动,偏移量的Image从的热点起源Cursor在扳机的瞬间,Transferable拖动的目标数据,DragSourceListener和FlavorMap。- 参数
-
trigger- 发起阻力的DragGestureEvent -
dragCursor- 此拖动操作的初始Cursor或默认光标处理的null; 有关拖放期间光标处理机制的更多详细信息,请参阅DragSourceContext -
dragImage- 要拖动的图像或null -
imageOffset-偏移量的Image起源从研究的热点Cursor在扳机的瞬间 -
transferable- 拖动的主题数据 -
dsl-DragSourceListener -
flavorMap- 要使用的FlavorMap,或null - 异常
-
InvalidDnDOperationException- 如果拖放系统无法启动拖动操作,或者用户尝试在现有拖动操作仍在执行时尝试启动拖动
-
startDrag
public void startDrag(DragGestureEvent trigger, Cursor dragCursor, Transferable transferable, DragSourceListener dsl, FlavorMap flavorMap) throws InvalidDnDOperationException
开始一拖,考虑到DragGestureEvent启动拖动,初步Cursor用,Transferable拖动的目标数据,该DragSourceListener和FlavorMap。- 参数
-
trigger- 启动拖动的DragGestureEvent -
dragCursor- 此拖动操作的初始Cursor或默认光标处理的null; 有关拖放期间光标处理机制的更多详细信息,请参阅DragSourceContext -
transferable- 拖动的主题数据 -
dsl-DragSourceListener -
flavorMap- 要使用的FlavorMap或null - 异常
-
InvalidDnDOperationException- 如果拖放系统无法启动拖动操作,或者用户在现有拖动操作仍在执行时尝试启动拖动
-
startDrag
public void startDrag(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point dragOffset, Transferable transferable, DragSourceListener dsl) throws InvalidDnDOperationException
开始一拖,考虑到DragGestureEvent启动拖动,初步Cursor用,Image拖动时,该偏移Image从的热点起源Cursor在触发,拖动的目标数据的瞬间,和DragSourceListener。- 参数
-
trigger- 启动拖动的DragGestureEvent -
dragCursor- 此拖动操作的初始Cursor或默认光标处理的null; 有关拖放期间光标处理机制的更多详细信息,请参阅DragSourceContext -
dragImage-将Image拖动或null -
dragOffset- 触发瞬间Cursor的热点偏离Image的热点 -
transferable- 拖动的主题数据 -
dsl-DragSourceListener - 异常
-
InvalidDnDOperationException- 如果拖放系统无法启动拖动操作,或者用户在现有拖动操作仍在执行时尝试启动拖动
-
startDrag
public void startDrag(DragGestureEvent trigger, Cursor dragCursor, Transferable transferable, DragSourceListener dsl) throws InvalidDnDOperationException
开始一拖,考虑到DragGestureEvent启动拖动,初步Cursor用,Transferable拖动的目标数据和DragSourceListener。- 参数
-
trigger- 启动拖动的DragGestureEvent -
dragCursor- 此拖动操作的初始Cursor或默认光标处理的null; 有关拖放期间光标处理机制的更多详细信息,请参见DragSourceContext类 -
transferable- 拖动的主题数据 -
dsl-DragSourceListener - 异常
-
InvalidDnDOperationException- 如果拖放系统无法启动拖动操作,或者用户在现有拖动操作仍在执行时尝试启动拖动
-
createDragSourceContext
protected DragSourceContext createDragSourceContext(DragGestureEvent dgl, Cursor dragCursor, Image dragImage, Point imageOffset, Transferable t, DragSourceListener dsl)
创建DragSourceContext以处理当前拖动操作。要合并新的
DragSourceContext子类,子类DragSource并重写此方法。如果
dragImage为null,则不会使用任何图像来表示此拖动操作的反馈拖动,但不会抛出NullPointerException。如果
dsl是null,则未使用创建的DragSourceContext注册拖动源侦听DragSourceContext,但不会抛出NullPointerException。- 参数
-
dgl- 触发拖动的DragGestureEvent -
dragCursor- 此拖动操作的初始Cursor或默认光标处理的null; 有关拖放期间光标处理机制的更多详细信息,请参见DragSourceContext类 -
dragImage- 要拖动的Image或null -
imageOffset- 触发瞬间Image原点偏离光标的热点 -
t- 拖动的主题数据 -
dsl-DragSourceListener - 结果
-
DragSourceContext - 异常
-
NullPointerException- 如果dscp是null -
NullPointerException- 如果dgl是null -
NullPointerException- 如果dragImage不是null而imageOffset是null -
NullPointerException- 如果t是null -
IllegalArgumentException- 如果与触发事件关联的Component是null。 -
IllegalArgumentException-如果DragSource触发事件为null。 -
IllegalArgumentException- 如果触发事件的拖动操作是DnDConstants.ACTION_NONE。 -
IllegalArgumentException- 如果与触发器事件关联的DragGestureRecognizer的源操作等于DnDConstants.ACTION_NONE。
-
getFlavorMap
public FlavorMap getFlavorMap()
此方法返回FlavorMap这个DragSource。- 结果
-
FlavorMap为DragSource
-
createDragGestureRecognizer
public <T extends DragGestureRecognizer> T createDragGestureRecognizer(类<T> recognizerAbstractClass, Component c, int actions, DragGestureListener dgl)
创建一个新的DragGestureRecognizer,它实现指定的抽象子类DragGestureRecognizer,并在新创建的对象上设置指定的Component和DragGestureListener。- 参数类型
-
T- 要创建的DragGestureRecognizer的类型 - 参数
-
recognizerAbstractClass- 请求的抽象类型 -
actions- 允许的源拖动操作 -
c-Component目标 -
dgl-DragGestureListener通知 - 结果
-
新的
DragGestureRecognizer或null如果Toolkit.createDragGestureRecognizer方法没有可用于请求的DragGestureRecognizer子类的实现并返回null
-
createDefaultDragGestureRecognizer
public DragGestureRecognizer createDefaultDragGestureRecognizer(Component c, int actions, DragGestureListener dgl)
创建一个新的DragGestureRecognizer实现的默认抽象子类DragGestureRecognizer这个DragSource,并设置指定Component和DragGestureListener新创建的对象上。 对于此DragSource,默认值为MouseDragGestureRecognizer。- 参数
-
c- 识别器的Component目标 -
actions- 允许的源操作 -
dgl-DragGestureListener通知 - 结果
-
新的
DragGestureRecognizer或null如果Toolkit.createDragGestureRecognizer方法没有可用于请求的DragGestureRecognizer子类的实现并返回null
-
addDragSourceListener
public void addDragSourceListener(DragSourceListener dsl)
将指定的DragSourceListener添加到此DragSource以在使用此DragSource启动的拖动操作期间接收拖动源事件。 如果指定了null侦听器,则不执行任何操作,也不会引发异常。- 参数
-
dsl- 要添加的DragSourceListener - 从以下版本开始:
- 1.4
- 另请参见:
-
removeDragSourceListener(java.awt.dnd.DragSourceListener),getDragSourceListeners()
-
removeDragSourceListener
public void removeDragSourceListener(DragSourceListener dsl)
删除指定DragSourceListener从这个DragSource。 如果指定了null侦听器,则不执行任何操作,也不会引发异常。 如果先前未将参数指定的侦听器添加到此DragSource,则不执行任何操作,也不会引发异常。- 参数
-
dsl- 要删除的DragSourceListener - 从以下版本开始:
- 1.4
- 另请参见:
-
addDragSourceListener(java.awt.dnd.DragSourceListener),getDragSourceListeners()
-
getDragSourceListeners
public DragSourceListener[] getDragSourceListeners()
获取在DragSourceListener注册的所有DragSource。- 结果
-
所有
DragSource的DragSourceListeners,如果当前没有注册这样的监听器,则为空数组 - 从以下版本开始:
- 1.4
- 另请参见:
-
addDragSourceListener(java.awt.dnd.DragSourceListener),removeDragSourceListener(java.awt.dnd.DragSourceListener)
-
addDragSourceMotionListener
public void addDragSourceMotionListener(DragSourceMotionListener dsml)
将指定的DragSourceMotionListener添加到此DragSource以在使用此DragSource启动的拖动操作期间接收拖动动作事件。 如果指定了null侦听器,则不执行任何操作,也不会引发异常。- 参数
-
dsml- 要添加的DragSourceMotionListener - 从以下版本开始:
- 1.4
- 另请参见:
-
removeDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener),getDragSourceMotionListeners()
-
removeDragSourceMotionListener
public void removeDragSourceMotionListener(DragSourceMotionListener dsml)
删除指定DragSourceMotionListener从这个DragSource。 如果指定了null侦听器,则不执行任何操作,也不会引发异常。 如果先前未将参数指定的侦听器添加到此DragSource,则不执行任何操作,也不会引发异常。- 参数
-
dsml- 要删除的DragSourceMotionListener - 从以下版本开始:
- 1.4
- 另请参见:
-
addDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener),getDragSourceMotionListeners()
-
getDragSourceMotionListeners
public DragSourceMotionListener[] getDragSourceMotionListeners()
获取所有DragSourceMotionListener注册的这个DragSource。- 结果
-
所有这
DragSource的DragSourceMotionListeners或一个空数组,如果当前没有注册这样的监听器 - 从以下版本开始:
- 1.4
- 另请参见:
-
addDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener),removeDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener)
-
getListeners
public <T extends EventListener> T[] getListeners(类<T> listenerType)
获取当前注册的所有对象FooListener在这个SDragSource。FooListeners使用addFooListener方法注册。- 参数类型
-
T- 侦听器对象的类型 - 参数
-
listenerType- 请求的侦听器类型; 此参数应指定从java.util.EventListener下降的接口 - 结果
-
此
DragSource上注册为FooListener的所有对象的数组,如果未添加此类侦听器,则为空数组 - 异常
-
ClassCastException- 如果listenerType未指定实现java.util.EventListener的类或接口 - 从以下版本开始:
- 1.4
- 另请参见:
-
getDragSourceListeners(),getDragSourceMotionListeners()
-
getDragThreshold
public static int getDragThreshold()
返回拖动手势运动阈值。 拖动手势运动阈值定义了MouseDragGestureRecognizer的推荐行为。如果系统属性
awt.dnd.drag.threshold设置为正整数,则此方法返回系统属性的值; 否则,如果Java平台的实现可以使用并支持相关的桌面属性,则此方法返回该属性的值; 否则此方法返回一些默认值。 可以使用java.awt.Toolkit.getDesktopProperty("DnD.gestureMotionThreshold")查询相关的桌面属性。- 结果
- 拖动手势动作阈值
- 从以下版本开始:
- 1.5
- 另请参见:
-
MouseDragGestureRecognizer
-
-