- java.lang.Object
-
- java.awt.dnd.DragSourceContext
-
- 实现的所有接口
-
DragSourceListener
,DragSourceMotionListener
,Serializable
,EventListener
public class DragSourceContext extends Object implements DragSourceListener, DragSourceMotionListener, Serializable
DragSourceContext
类负责管理拖放协议的启动器端。 特别是,它负责管理到DragSourceListeners和DragSourceMotionListeners的拖动事件通知,并提供表示拖动操作的源数据的Transferable
。请注意,
DragSourceContext
本身实现了DragSourceListener
和DragSourceMotionListener
接口。 这是为了让平台端点(DragSourceContextPeer
由创建的实例)DragSource
通知DragSourceContext
的状态变化在正在进行的操作。 这允许DragSourceContext
对象在平台和拖动操作的启动器提供的侦听器之间插入自身。默认情况下,
DragSourceContext
将光标设置为适合拖放操作的当前状态。 例如,如果用户选择了the move action ,并且指针位于接受移动操作的目标上,则会显示默认移动光标。 当指针位于不接受传输的区域上时,将显示默认的“无丢弃”光标。当
setCursor(java.awt.Cursor)
方法设置自定义光标时,将禁用此默认处理机制。 禁用默认处理时,通过监听DragSource
事件并调用setCursor()
方法,开发人员有责任使光标保持最新setCursor()
。 或者,您可以通过提供DragSource
和DragSourceContext
类的自定义实现来提供自定义游标行为。- 从以下版本开始:
- 1.2
- 另请参见:
-
DragSourceListener
,DragSourceMotionListener
,DnDConstants
, Serialized Form
-
-
字段汇总
字段 变量和类型 字段 描述 protected static int
CHANGED
一个int
由updateCurrentCursor(使用)的指示用户操作已经改变。protected static int
DEFAULT
一个int
由updateCurrentCursor使用()指示所述Cursor
应该改变为默认值(无滴)Cursor
。protected static int
ENTER
一个int
由updateCurrentCursor使用()指示所述Cursor
已进入DropTarget
。protected static int
OVER
一个int
由updateCurrentCursor使用()指示所述Cursor
是在DropTarget
。
-
构造方法摘要
构造方法 构造器 描述 DragSourceContext(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point offset, Transferable t, DragSourceListener dsl)
从DragSource
调用,此构造函数创建一个新的DragSourceContext
给定DragSourceContextPeer
为此Drag,DragGestureEvent
触发Drag,初始Cursor
用于拖动,一个(可选)Image
在Drag发生时显示,偏移量为Image
来自触发事件瞬间的热点,Transferable
主题数据,以及在拖放操作期间使用的DragSourceListener
。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 void
addDragSourceListener(DragSourceListener dsl)
添加DragSourceListener
这个DragSourceContext
如果一个尚未加入。void
dragDropEnd(DragSourceDropEvent dsde)
电话dragDropEnd
的DragSourceListener
这个注册小号DragSourceContext
,并与相关DragSource
,并将它们指定DragSourceDropEvent
。void
dragEnter(DragSourceDragEvent dsde)
电话dragEnter
的DragSourceListener
这个注册小号DragSourceContext
,并与相关DragSource
,并将它们指定DragSourceDragEvent
。void
dragExit(DragSourceEvent dse)
电话dragExit
的DragSourceListener
这个注册小号DragSourceContext
,并与相关DragSource
,并将它们指定DragSourceEvent
。void
dragMouseMoved(DragSourceDragEvent dsde)
电话dragMouseMoved
对DragSourceMotionListener
与注册小号DragSource
与此相关DragSourceContext
,并将它们传递指定DragSourceDragEvent
。void
dragOver(DragSourceDragEvent dsde)
电话dragOver
的DragSourceListener
这个注册小号DragSourceContext
,并与相关DragSource
,并将它们指定DragSourceDragEvent
。void
dropActionChanged(DragSourceDragEvent dsde)
电话dropActionChanged
的DragSourceListener
这个注册小号DragSourceContext
,并与相关DragSource
,并将它们指定DragSourceDragEvent
。Component
getComponent()
返回与Component
相关联的DragSourceContext
。Cursor
getCursor()
返回当前自定义拖动Cursor
。DragSource
getDragSource()
返回DragSource
认为这个实例DragSourceContext
。int
getSourceActions()
返回DnDConstants
的按位掩码,表示与此DragSourceContext
关联的拖动操作的拖动源支持的一组放置操作。Transferable
getTransferable()
返回与Transferable
相关联的DragSourceContext
。DragGestureEvent
getTrigger()
返回最初触发拖动的DragGestureEvent
。void
removeDragSourceListener(DragSourceListener dsl)
删除指定DragSourceListener
从这个DragSourceContext
。void
setCursor(Cursor c)
将此拖动操作的自定义光标设置为指定的Cursor
。void
transferablesFlavorsChanged()
通知对等方Transferable
的DataFlavor
已更改。protected void
updateCurrentCursor(int sourceAct, int targetAct, int status)
如果默认拖动光标行为处于活动状态,则此方法为拖动源,放置目标操作和状态支持的指定操作设置默认拖动光标,否则此方法不执行任何操作。
-
-
-
字段详细信息
-
DEFAULT
protected static final int DEFAULT
一个int
由updateCurrentCursor使用()指示所述Cursor
应该改变为默认值(无滴)Cursor
。- 另请参见:
- 常数字段值
-
ENTER
protected static final int ENTER
一个int
由updateCurrentCursor使用()指示所述Cursor
已进入DropTarget
。- 另请参见:
- 常数字段值
-
OVER
protected static final int OVER
一个int
由updateCurrentCursor使用()指示所述Cursor
是在DropTarget
。- 另请参见:
- 常数字段值
-
CHANGED
protected static final int CHANGED
一个int
由updateCurrentCursor(使用)的指示用户操作已经改变。- 另请参见:
- 常数字段值
-
-
构造方法详细信息
-
DragSourceContext
public DragSourceContext(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point offset, Transferable t, DragSourceListener dsl)
从DragSource
调用,此构造函数创建一个新的DragSourceContext
给定DragSourceContextPeer
为此Drag,DragGestureEvent
触发Drag,初始Cursor
用于拖动,一个(可选)Image
在Drag发生时显示,偏移量为Image
来自触发事件瞬间的热点,Transferable
主题数据,以及在拖放操作期间使用的DragSourceListener
。
如果DragSourceContextPeer
是null
NullPointerException
被抛出。
如果DragGestureEvent
是null
NullPointerException
被抛出。
如果Cursor
是null
不会抛出异常,并且为此拖动操作激活默认拖动光标行为。
如果Image
是null
不会引发异常。
如果Image
不是null
,则抛出偏移量为null NullPointerException
。
如果Transferable
是null
NullPointerException
被抛出。
如果DragSourceListener
是null
不会引发异常。- 参数
-
trigger
- 触发事件 -
dragCursor
- 此拖动操作的初始Cursor
或默认光标处理的null
; 有关拖放期间光标处理机制的更多详细信息,请参阅class level documentation -
dragImage
- 要拖的Image
(或null
) -
offset
- 触发事件瞬间图像原点与热点的偏移量 -
t
-Transferable
-
dsl
-DragSourceListener
- 异常
-
IllegalArgumentException
- 如果与触发事件关联的Component
是null
。 -
IllegalArgumentException
-如果DragSource
触发事件为null
。 -
IllegalArgumentException
- 如果触发事件的拖动操作是DnDConstants.ACTION_NONE
。 -
IllegalArgumentException
- 如果与触发事件关联的DragGestureRecognizer
的源操作等于DnDConstants.ACTION_NONE
。 -
NullPointerException
- 如果dscp,trigger或t为null,或者dragImage为非null且offset为null
-
-
方法详细信息
-
getDragSource
public DragSource getDragSource()
返回DragSource
认为这个实例DragSourceContext
。- 结果
-
DragSource
实例化了这个DragSourceContext
-
getComponent
public Component getComponent()
返回与Component
相关联的DragSourceContext
。- 结果
-
开始拖动的
Component
-
getTrigger
public DragGestureEvent getTrigger()
返回最初触发拖动的DragGestureEvent
。- 结果
- 触发拖动的事件
-
getSourceActions
public int getSourceActions()
返回DnDConstants
的按位掩码,表示与此DragSourceContext
关联的拖动操作的拖动源支持的拖放操作DragSourceContext
。- 结果
- 拖动源支持的放置操作
-
setCursor
public void setCursor(Cursor c)
将此拖动操作的自定义光标设置为指定的Cursor
。 如果指定的Cursor
为null
,则会为此拖动操作激活默认拖动光标行为,否则将取消激活。- 参数
-
c
- 此拖动操作的初始Cursor
,或者为默认游标处理的null
; 有关拖放期间光标处理的更多详细信息,请参阅class level documentation
-
getCursor
public Cursor getCursor()
返回当前自定义拖动Cursor
。- 结果
-
当前自定义拖动
Cursor
,如果已设置,否则返回null
。 - 另请参见:
-
setCursor(java.awt.Cursor)
-
addDragSourceListener
public void addDragSourceListener(DragSourceListener dsl) throws TooManyListenersException
添加DragSourceListener
这个DragSourceContext
如果一个尚未加入。 如果已存在DragSourceListener
,则此方法将抛出TooManyListenersException
。- 参数
-
dsl
- 要添加的DragSourceListener
。 请注意,虽然未禁止null
,但不接受作为参数。 - 异常
-
TooManyListenersException
- 如果已添加DragSourceListener
-
removeDragSourceListener
public void removeDragSourceListener(DragSourceListener dsl)
删除指定DragSourceListener
从这个DragSourceContext
。- 参数
-
dsl
- 要删除的DragSourceListener
; 请注意,虽然null
未被禁止,但不接受作为参数
-
transferablesFlavorsChanged
public void transferablesFlavorsChanged()
通知对等方Transferable
的DataFlavor
已更改。
-
dragEnter
public void dragEnter(DragSourceDragEvent dsde)
电话dragEnter
的DragSourceListener
这个注册小号DragSourceContext
,并与相关DragSource
,并将它们指定DragSourceDragEvent
。- Specified by:
-
dragEnter
在界面DragSourceListener
- 参数
-
dsde
-DragSourceDragEvent
-
dragOver
public void dragOver(DragSourceDragEvent dsde)
电话dragOver
的DragSourceListener
这个注册小号DragSourceContext
,并与相关DragSource
,并将它们指定DragSourceDragEvent
。- Specified by:
-
dragOver
在界面DragSourceListener
- 参数
-
dsde
-DragSourceDragEvent
-
dragExit
public void dragExit(DragSourceEvent dse)
电话dragExit
的DragSourceListener
这个注册小号DragSourceContext
,并与相关DragSource
,并将它们指定DragSourceEvent
。- Specified by:
-
dragExit
在界面DragSourceListener
- 参数
-
dse
-DragSourceEvent
-
dropActionChanged
public void dropActionChanged(DragSourceDragEvent dsde)
电话dropActionChanged
的DragSourceListener
这个注册小号DragSourceContext
,并与相关DragSource
,并将它们指定DragSourceDragEvent
。- Specified by:
-
dropActionChanged
,界面DragSourceListener
- 参数
-
dsde
-DragSourceDragEvent
-
dragDropEnd
public void dragDropEnd(DragSourceDropEvent dsde)
电话dragDropEnd
的DragSourceListener
这个注册小号DragSourceContext
,并与相关DragSource
,并将它们指定DragSourceDropEvent
。- Specified by:
-
dragDropEnd
在界面DragSourceListener
- 参数
-
dsde
-DragSourceDropEvent
-
dragMouseMoved
public void dragMouseMoved(DragSourceDragEvent dsde)
电话dragMouseMoved
对DragSourceMotionListener
与注册小号DragSource
与此相关DragSourceContext
,并将它们传递指定DragSourceDragEvent
。- Specified by:
-
dragMouseMoved
在界面DragSourceMotionListener
- 参数
-
dsde
-DragSourceDragEvent
- 从以下版本开始:
- 1.4
-
getTransferable
public Transferable getTransferable()
返回与Transferable
相关联的DragSourceContext
。- 结果
-
Transferable
-
updateCurrentCursor
protected void updateCurrentCursor(int sourceAct, int targetAct, int status)
如果默认拖动光标行为处于活动状态,则此方法为拖动源,放置目标操作和状态支持的指定操作设置默认拖动光标,否则此方法不执行任何操作。- 参数
-
sourceAct
- 拖动源支持的操作 -
targetAct
- 放置目标操作 -
status
-一个领域的DEFAULT
,ENTER
,OVER
,CHANGED
-
-