- 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 intCHANGED一个int由updateCurrentCursor(使用)的指示用户操作已经改变。protected static intDEFAULT一个int由updateCurrentCursor()使用,表示Cursor应该更改为默认值(无丢弃)Cursor。protected static intENTER一个int)由updateCurrentCursor(用来指示Cursor已进入DropTarget。protected static intOVER一个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 方法 描述 voidaddDragSourceListener(DragSourceListener dsl)添加DragSourceListener这个DragSourceContext如果一个尚未加入。voiddragDropEnd(DragSourceDropEvent dsde)致电dragDropEnd在DragSourceListener注册了这个DragSourceContext和相关联的DragSource,并通过他们指定的DragSourceDropEvent。voiddragEnter(DragSourceDragEvent dsde)致电dragEnter在DragSourceListener注册了这个DragSourceContext和相关的DragSource,并通过他们指定的DragSourceDragEvent。voiddragExit(DragSourceEvent dse)致电dragExit在DragSourceListener注册了这个DragSourceContext和相关的DragSource,并通过他们指定的DragSourceEvent。voiddragMouseMoved(DragSourceDragEvent dsde)致电dragMouseMoved在DragSourceMotionListener注册与DragSource相关联的这个DragSourceContext,他们通过了指定的DragSourceDragEvent。voiddragOver(DragSourceDragEvent dsde)致电dragOver在DragSourceListener注册该DragSourceContext和相关联的DragSource,并通过他们指定的DragSourceDragEvent。voiddropActionChanged(DragSourceDragEvent dsde)致电dropActionChanged在DragSourceListener注册了这个DragSourceContext和相关的DragSource,并通过他们指定的DragSourceDragEvent。ComponentgetComponent()返回Component与此DragSourceContext相关联。CursorgetCursor()返回当前自定义拖动Cursor。DragSourcegetDragSource()返回DragSource,实例化了这个DragSourceContext。intgetSourceActions()返回DnDConstants的按位掩码,表示与此DragSourceContext相关联的拖动操作的拖动源支持的放置操作集。TransferablegetTransferable()返回Transferable与此相关DragSourceContext。DragGestureEventgetTrigger()返回最初触发拖动的DragGestureEvent。voidremoveDragSourceListener(DragSourceListener dsl)删除指定DragSourceListener从这个DragSourceContext。voidsetCursor(Cursor c)将此拖动操作的自定义光标设置为指定的Cursor。voidtransferablesFlavorsChanged()通知对等方,Transferable的DataFlavor已更改。protected voidupdateCurrentCursor(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是nullNullPointerException被抛出。
如果DragGestureEvent是nullNullPointerException被抛出。
如果Cursor为null不会引发异常,并为此拖动操作激活默认拖动光标行为。
如果Image是null没有异常抛出。
如果Image不是null并且偏移是null NullPointerException被抛出。
如果Transferable是nullNullPointerException被抛出。
如果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
-
-