- java.lang.Object
-
- java.awt.dnd.DragSourceContext
-
- All Implemented Interfaces:
-
DragSourceListener
,DragSourceMotionListener
,Serializable
,EventListener
public class DragSourceContext extends Object implements DragSourceListener, DragSourceMotionListener, Serializable
DragSourceContext
类负责管理拖放协议的发起方。 特别地,它负责管理拖动事件通知给DragSourceListeners和DragSourceMotionListeners ,并提供表示拖动操作的源数据的Transferable
。请注意,
DragSourceContext
本身实现了DragSourceListener
和DragSourceMotionListener
接口。 这是为了允许由DragSource
创建的平台对等体(DragSourceContextPeer
实例)通知正在进行的操作中的状态更改的DragSourceContext
。 这允许DragSourceContext
对象自身插入平台和由拖动操作的启动器提供的侦听器之间。默认情况下,
DragSourceContext
根据拖放操作的当前状态设置光标。 例如,如果用户选择了the move action ,并且指针在接受移动动作的目标上,则显示默认移动光标。 当指针位于不接受传输的区域上时,将显示默认的“不丢弃”光标。当通过
setCursor(java.awt.Cursor)
方法设置自定义光标时,此默认处理机制将被禁用。 当默认处理被禁用时,通过监听DragSource
事件并调用setCursor()
方法,开发人员有责任将光标保持最新。 或者,您可以通过提供DragSource
和DragSourceContext
类的自定义实现来提供自定义游标行为。- 从以下版本开始:
- 1.2
- 另请参见:
-
DragSourceListener
,DragSourceMotionListener
,DnDConstants
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field 描述 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
。
-
构造方法摘要
构造方法 Constructor 描述 DragSourceContext(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point offset, Transferable t, DragSourceListener dsl)
从名为DragSource
,该构造函数创建一个新DragSourceContext
给出的DragSourceContextPeer
此拖累,DragGestureEvent
触发该Drag的初始Cursor
使用的拖累,(可选的)Image
,而将正在发生显示的偏移Image
起源于触发事件瞬间的热点,Transferable
主题数据,以及拖放操作期间使用的DragSourceListener
。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 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
由updateCurrentCursor()使用的一个int
,表示Cursor
应该更改为默认值(不下降)Cursor
。- 另请参见:
- Constant Field Values
-
ENTER
protected static final int ENTER
由updateCurrentCursor()使用的一个int
,表示该Cursor
已经输入了一个DropTarget
。- 另请参见:
- Constant Field Values
-
OVER
protected static final int OVER
一个int
由updateCurrentCursor使用()指示所述Cursor
是在DropTarget
。- 另请参见:
- Constant Field Values
-
CHANGED
protected static final int CHANGED
一个int
由updateCurrentCursor(使用)的指示用户操作已经改变。- 另请参见:
- Constant Field Values
-
-
构造方法详细信息
-
DragSourceContext
public DragSourceContext(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point offset, Transferable t, DragSourceListener dsl)
从名为DragSource
,该构造函数创建一个新DragSourceContext
给出的DragSourceContextPeer
此拖累,DragGestureEvent
触发该Drag的初始Cursor
使用的拖累,(可选的)Image
,而将正在发生显示的偏移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为空,或者dragImage为非空,并且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
相关联的拖动操作的拖动源支持的放置操作集。- 结果
- 拖动源支持的拖放操作
-
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
-
-