- 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 Cursor
DefaultCopyDrop
默认值Cursor
与复制操作一起使用,表示当前允许放置。static Cursor
DefaultCopyNoDrop
默认值Cursor
与复制操作一起使用,表示当前不允许放置。static Cursor
DefaultLinkDrop
默认值Cursor
与链接操作一起使用,表示当前允许放置。static Cursor
DefaultLinkNoDrop
默认值Cursor
与链接操作一起使用,指示当前不允许放置。static Cursor
DefaultMoveDrop
默认值Cursor
与移动操作一起使用,表示当前允许放置。static Cursor
DefaultMoveNoDrop
默认值Cursor
与移动操作一起使用,表示当前不允许放置。
-
构造方法摘要
构造方法 构造器 描述 DragSource()
创建一个新的DragSource
。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 void
addDragSourceListener(DragSourceListener dsl)
将指定的DragSourceListener
添加到此DragSource
以在使用此DragSource
启动的拖动操作期间接收拖动源事件。void
addDragSourceMotionListener(DragSourceMotionListener dsml)
将指定的DragSourceMotionListener
添加到此DragSource
以在使用此DragSource
启动的拖动操作期间接收拖动动作事件。DragGestureRecognizer
createDefaultDragGestureRecognizer(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 DragSourceContext
createDragSourceContext(DragGestureEvent dgl, Cursor dragCursor, Image dragImage, Point imageOffset, Transferable t, DragSourceListener dsl)
创建DragSourceContext
以处理当前拖动操作。static DragSource
getDefaultDragSource()
获取与基础平台关联的DragSource
对象。DragSourceListener[]
getDragSourceListeners()
获取在DragSourceListener
注册的所有DragSourceListener
DragSource
。DragSourceMotionListener[]
getDragSourceMotionListeners()
获取在DragSourceMotionListener
注册的所有DragSource
。static int
getDragThreshold()
返回拖动手势运动阈值。FlavorMap
getFlavorMap()
此方法返回FlavorMap
这个DragSource
。<T extends EventListener>
T[]getListeners(类<T> listenerType)
获取当前注册的所有对象FooListener
在这个SDragSource
。static boolean
isDragImageSupported()
报告是否在底层平台上提供了拖动Image
支持。void
removeDragSourceListener(DragSourceListener dsl)
删除指定DragSourceListener
从这个DragSource
。void
removeDragSourceMotionListener(DragSourceMotionListener dsml)
删除指定DragSourceMotionListener
从这个DragSource
。void
startDrag(DragGestureEvent trigger, Cursor dragCursor, Transferable transferable, DragSourceListener dsl)
开始一拖,考虑到DragGestureEvent
启动拖动,初步Cursor
用,Transferable
拖动的目标数据和DragSourceListener
。void
startDrag(DragGestureEvent trigger, Cursor dragCursor, Transferable transferable, DragSourceListener dsl, FlavorMap flavorMap)
开始一拖,考虑到DragGestureEvent
启动拖动,初步Cursor
用,Transferable
拖动的目标数据,该DragSourceListener
和FlavorMap
。void
startDrag(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point dragOffset, Transferable transferable, DragSourceListener dsl)
开始一拖,考虑到DragGestureEvent
启动拖动,初步Cursor
用,Image
拖动时,该偏移Image
从的热点起源Cursor
在触发,拖动的目标数据的瞬间,和DragSourceListener
。void
startDrag(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
的DragSourceListener
s,如果当前没有注册这样的监听器,则为空数组 - 从以下版本开始:
- 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
的DragSourceMotionListener
s或一个空数组,如果当前没有注册这样的监听器 - 从以下版本开始:
- 1.4
- 另请参见:
-
addDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener)
,removeDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener)
-
getListeners
public <T extends EventListener> T[] getListeners(类<T> listenerType)
获取当前注册的所有对象FooListener
在这个SDragSource
。FooListener
s使用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
-
-