public class DragSource extends Object implements Serializable
DragSource是DragSource操作的实体,可用于多种情况:
Component ,或与相关联的应用特定对象Component在GUI实例。 [实施依赖] DragSource获得,一个DragGestureRecognizer也应获得的关联DragSource与特定Component 。
用户手势的初步解释以及随后开始的拖拽操作是实现Component的Component ,通常由DragGestureRecognizer 。
当拖动手势发生时, DragSource的startDrag()方法应以引起用户的浏览操作并传递Drag处理和Drop协议通知调用。 一个DragSource只允许在任何一个时间进行一次拖放操作,并且通过抛出一个IllegalDnDOperationException来拒绝任何进一步的startDrag()请求,直到现存操作完成为止。
startDrag()方法调用createDragSourceContext()方法来实例化一个合适的DragSourceContext并将DragSourceContextPeer与之相关DragSourceContextPeer 。
如果拖放系统由于某种原因无法启动拖动操作,那么startDrag()方法会引发一个java.awt.dnd.InvalidDnDOperationException来表示这种情况。 通常,当底层平台系统不处于启动拖动状态或指定的参数无效时,会抛出此异常。
请注意,在拖动期间,在拖动操作开始时由源公开的操作集可能不会更改,直到操作完成。 操作(一个或多个)是用于操作的相对于该持续时间恒定DragSource 。
| Modifier and Type | Field and Description |
|---|---|
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 and Description |
|---|
DragSource()
创建一个新的
DragSource 。
|
| Modifier and Type | Method and Description |
|---|---|
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> |
createDragGestureRecognizer(类<T> recognizerAbstractClass, Component c, int actions, DragGestureListener dgl)
创建一个新
DragGestureRecognizer实现的指定抽象子类
DragGestureRecognizer ,并设置指定的
Component和
DragGestureListener新创建的对象上。
|
protected DragSourceContext |
createDragSourceContext(java.awt.dnd.peer.DragSourceContextPeer dscp, 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> |
getListeners(类<T> listenerType)
获取当前注册为
FooListener的所有对象在此
DragSource 。
|
static boolean |
isDragImageSupported()
报告是否在基础平台上提供拖动
Image支持。
|
void |
removeDragSourceListener(DragSourceListener dsl)
删除指定的
DragSourceListener从这个
DragSource 。
|
void |
removeDragSourceMotionListener(DragSourceMotionListener dsml)
删除指定的
DragSourceMotionListener从这个
DragSource 。
|
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 。
|
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 。
|
public static final Cursor DefaultCopyDrop
Cursor进行复制操作,指示当前允许丢弃。
null如果GraphicsEnvironment.isHeadless()返回true 。
public static final Cursor DefaultMoveDrop
Cursor用于指示当前允许下降的移动操作。
null如果GraphicsEnvironment.isHeadless()返回true 。
public static final Cursor DefaultLinkDrop
Cursor与链接操作一起使用,表示当前允许丢弃。
null如果GraphicsEnvironment.isHeadless()返回true 。
public static final Cursor DefaultCopyNoDrop
Cursor用于复制操作,指示当前不允许丢弃。
null如果GraphicsEnvironment.isHeadless()返回true 。
public static final Cursor DefaultMoveNoDrop
Cursor ,用于指示当前不允许下降的移动操作。
null如果GraphicsEnvironment.isHeadless()返回true 。
public static final Cursor DefaultLinkNoDrop
Cursor用于链接操作,指示当前不允许丢弃。
null如果GraphicsEnvironment.isHeadless()返回true 。
public DragSource()
throws HeadlessException
DragSource 。
HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
public static DragSource getDefaultDragSource()
DragSource对象。
HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
public static boolean isDragImageSupported()
Image支持。
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 Cursor或默认光标处理的null ;
有关拖放时光标处理机制的更多详细信息,请参阅DragSourceContext
dragImage - 图片拖动或
null
imageOffset -
Image起源于触发时刻
Cursor热点的偏移量
transferable - 拖动的主题数据
dsl -
DragSourceListener
flavorMap - 要使用的
FlavorMap ,或
null
InvalidDnDOperationException - 如果拖放系统无法启动拖动操作,或者如果用户尝试在现有拖动操作仍在执行时启动拖动
public void startDrag(DragGestureEvent trigger, Cursor dragCursor, Transferable transferable, DragSourceListener dsl, FlavorMap flavorMap) throws InvalidDnDOperationException
DragGestureEvent启动拖动,初步
Cursor用,
Transferable拖动的目标数据,该
DragSourceListener和
FlavorMap 。
trigger - 发起拖动的
DragGestureEvent
dragCursor - 这个拖动操作的初始Cursor Cursor或默认光标处理的null ;
有关拖放时光标处理机制的更多详细信息,请参阅DragSourceContext
transferable - 拖动的主题数据
dsl -
DragSourceListener
flavorMap - 要使用的
FlavorMap或
null
InvalidDnDOperationException - 如果拖放系统无法启动拖动操作,或者如果用户尝试在现有拖动操作仍在执行时启动拖动
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 ,默认光标处理为null ;
有关拖放中光标处理机制的更多详细信息,请参阅DragSourceContext
dragImage -
Image拖动或
null
dragOffset -
Image起点与触发时刻
Cursor热点的偏移
transferable - 拖动的主题数据
dsl -
DragSourceListener
InvalidDnDOperationException - 如果拖放系统无法启动拖动操作,或者如果用户尝试在现有拖动操作仍在执行时启动拖动
public void startDrag(DragGestureEvent trigger, Cursor dragCursor, Transferable transferable, DragSourceListener dsl) throws InvalidDnDOperationException
DragGestureEvent启动拖动,初步
Cursor用,
Transferable拖动的目标数据和
DragSourceListener 。
trigger - 发起拖动的
DragGestureEvent
dragCursor - 此拖拽操作的初始Cursor Cursor或默认光标处理的null ;
请参阅DragSourceContext类,了解拖放过程中光标处理机制的更多细节
transferable - 拖动的主题数据
dsl -
DragSourceListener
InvalidDnDOperationException - 如果拖放系统无法启动拖动操作,或者如果用户尝试在现有拖动操作仍在执行时启动拖动
protected DragSourceContext createDragSourceContext(java.awt.dnd.peer.DragSourceContextPeer dscp, DragGestureEvent dgl, Cursor dragCursor, Image dragImage, Point imageOffset, Transferable t, DragSourceListener dsl)
DragSourceContext以处理当前的拖动操作。
要结合一个新的DragSourceContext子类,子类DragSource并覆盖此方法。
如果dragImage为null ,则无法使用图像表示对此拖动操作的反馈拖动,但不会抛出NullPointerException 。
如果dsl为null ,则不会在创建的DragSourceContext中注册拖动源侦听器,但不会抛出NullPointerException 。
dscp - 这个拖动的
DragSourceContextPeer
dgl -
DragGestureEvent触发了拖动
dragCursor - 这个拖动操作的初始Cursor 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 DragGestureRecognizer的源操作等于
DnDConstants.ACTION_NONE 。
public FlavorMap getFlavorMap()
FlavorMap为此
DragSource 。
FlavorMap为这个
DragSource
public <T extends DragGestureRecognizer> T createDragGestureRecognizer(类<T> recognizerAbstractClass, Component c, int actions, DragGestureListener dgl)
DragGestureRecognizer实现的指定抽象子类
DragGestureRecognizer ,并设置指定的
Component和
DragGestureListener新创建的对象上。
recognizerAbstractClass - 请求的抽象类型
actions - 允许的源拖动操作
c -
Component目标
dgl -
DragGestureListener通知
DragGestureRecognizer或
null如果
Toolkit.createDragGestureRecognizer方法没有实现可用于请求的
DragGestureRecognizer子类,并返回
null
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
public void addDragSourceListener(DragSourceListener dsl)
DragSourceListener这个DragSource在本所发起的拖动操作接收拖动源事件DragSource 。
如果指定了一个null监听器,则不会采取任何操作,也不会抛出任何异常。
dsl - 要添加的
DragSourceListener
removeDragSourceListener(java.awt.dnd.DragSourceListener) ,
getDragSourceListeners()
public void removeDragSourceListener(DragSourceListener dsl)
DragSourceListener从这个DragSource 。
如果指定了一个null侦听器,则不会采取任何操作,也不会抛出任何异常。
如果参数指定的侦听器以前未添加到此DragSource ,则不会执行任何操作,也不会抛出异常。
dsl - 要删除的
DragSourceListener
addDragSourceListener(java.awt.dnd.DragSourceListener) ,
getDragSourceListeners()
public DragSourceListener[] getDragSourceListeners()
DragSourceListener注册此
DragSource 。
DragSource的
DragSourceListener s或一个空数组,如果没有这样的听众当前注册
addDragSourceListener(java.awt.dnd.DragSourceListener) ,
removeDragSourceListener(java.awt.dnd.DragSourceListener)
public void addDragSourceMotionListener(DragSourceMotionListener dsml)
DragSourceMotionListener这个DragSource在本所发起的拖动操作接收的拖动移动事件DragSource 。
如果指定了一个null监听器,则不会采取任何操作,也不会抛出任何异常。
dsml - 要添加的
DragSourceMotionListener
removeDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener) ,
getDragSourceMotionListeners()
public void removeDragSourceMotionListener(DragSourceMotionListener dsml)
DragSourceMotionListener从这个DragSource 。
如果指定了一个null监听器,则不会采取任何操作,也不会抛出任何异常。
如果参数指定的侦听器以前未添加到此DragSource ,则不会执行任何操作,也不会抛出任何异常。
dsml - 要删除的
DragSourceMotionListener
addDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener) ,
getDragSourceMotionListeners()
public DragSourceMotionListener[] getDragSourceMotionListeners()
DragSourceMotionListener的所有
DragSource 。
DragSource的
DragSourceMotionListener s或一个空数组,如果没有这样的听众当前注册
addDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener) ,
removeDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener)
public <T extends EventListener> T[] getListeners(类<T> listenerType)
FooListener的所有对象在此DragSource 。
FooListener使用addFooListener 。
listenerType - 所请求的听众的类型;
此参数应指定从java.util.EventListener下降的java.util.EventListener
DragSource上注册为
FooListener的所有对象的数组,如果没有添加这样的侦听器,则是一个空数组
ClassCastException - 如果
listenerType没有指定实现java.util.EventListener的类或
java.util.EventListener
getDragSourceListeners() ,
getDragSourceMotionListeners()
public static int getDragThreshold()
MouseDragGestureRecognizer秒。
如果系统属性awt.dnd.drag.threshold设置为正整数,则此方法返回系统属性的值; 否则如果相关的桌面属性可用并且由Java平台的实现支持,则此方法返回该属性的值; 否则此方法返回一些默认值。 可以使用java.awt.Toolkit.getDesktopProperty("DnD.gestureMotionThreshold")查询相关的桌面属性。
MouseDragGestureRecognizer
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.