- java.lang.Object
-
- java.awt.dnd.DragSource
-
- All Implemented Interfaces:
-
Serializable
public class DragSource extends Object implements Serializable
DragSource
是负责启动拖放操作的实体,可用于多种情况:- 该JVM的生命周期为每个JVM 1个默认实例。
- 每个潜在的Drag Initiator对象(例如TextField)的实例为1个实例。 [实施依赖]
- 特定
Component
每个实例1,或与GUI中的Component
实例相关联的应用程序特定对象。 [实施依赖] - 一些其他任意关联。 [实施依赖]
DragSource
获得,一个DragGestureRecognizer
也应获得的关联DragSource
与特定Component
。用户手势的初步解释以及随后的拖动操作开始是实施
Component
的责任,通常由DragGestureRecognizer
实现。当拖动手势发生时,将
DragSource
的startDrag()方法,以便处理用户的导航手势和传递拖放协议通知。 ADragSource
只允许在任何一个时间进行单次拖放操作,并且通过抛出一个IllegalDnDOperationException
直到现在的操作完成之前拒绝任何进一步的startDrag()请求。startDrag()方法调用createDragSourceContext()方法来实例化一个合适的
DragSourceContext
,并将DragSourceContextPeer
与之相关联。如果拖放系统由于某种原因无法启动拖动操作,则startDrag()方法将引发一个
java.awt.dnd.InvalidDnDOperationException
来表示这种情况。 通常,当底层平台系统不处于启动拖动状态或指定的参数无效时,会抛出此异常。请注意,在拖动期间,在拖动操作开始时由源公开的操作集可能不会更改,直到操作完成。 在
DragSource
的操作期间,操作是DragSource
。- 从以下版本开始:
- 1.2
- 另请参见:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field 描述 static Cursor
DefaultCopyDrop
使用默认值Cursor
进行复制操作,指示当前允许丢弃。static Cursor
DefaultCopyNoDrop
与复制操作一起使用的默认Cursor
,表示当前不允许删除。static Cursor
DefaultLinkDrop
缺省Cursor
,用于链接操作,表示当前允许丢弃。static Cursor
DefaultLinkNoDrop
默认使用Cursor
链接操作,指示当前不允许丢弃。static Cursor
DefaultMoveDrop
默认的Cursor
与移动操作一起使用,指示当前允许丢弃。static Cursor
DefaultMoveNoDrop
默认Cursor
,与移动操作一起使用,表示当前不允许丢弃。
-
构造方法摘要
构造方法 Constructor 描述 DragSource()
创建一个新的DragSource
。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 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(Class<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
注册的所有DragSource
。DragSourceMotionListener[]
getDragSourceMotionListeners()
获取DragSourceMotionListener
注册的所有DragSource
。static int
getDragThreshold()
返回拖动手势运动阈值。FlavorMap
getFlavorMap()
此方法为该FlavorMap
返回DragSource
。<T extends EventListener>
T[]getListeners(Class<T> listenerType)
获取当前注册的所有对象为FooListener
s在此DragSource
。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
-Image
起始Cursor
触发瞬间Cursor
热点的偏移 -
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(Class<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(Class<T> listenerType)
获取当前注册的所有对象为FooListener
s在此DragSource
。FooListener
是使用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
-
-