- 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 
 
 -  
 
 -