- 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 intCHANGED一个int由updateCurrentCursor(使用)的指示用户操作已经改变。protected static intDEFAULT一个int由updateCurrentCursor使用()指示所述Cursor应该改变为默认值(无滴)Cursor。protected static intENTER一个int由updateCurrentCursor使用()指示所述Cursor已进入DropTarget。protected static intOVER一个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。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 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
一个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是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为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
-
-