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()方法将光标保持最新。 或者,您可以通过提供DragSource和DragSourceContext类的自定义实现来提供自定义游标行为。
DragSourceListener , DragSourceMotionListener , DnDConstants , Serialized Form
| Modifier and Type | Field and Description |
|---|---|
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 and Description |
|---|
DragSourceContext(java.awt.dnd.peer.DragSourceContextPeer dscp, DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point offset, Transferable t, DragSourceListener dsl)
从名为
DragSource ,该构造函数创建一个新
DragSourceContext给予
DragSourceContextPeer此拖累,
DragGestureEvent触发该Drag的初始
Cursor要使用的拖累,(可选的)
Image ,同时拖动正在发生显示的偏移
Image起源于触发事件瞬间的热点,
Transferable主题数据,以及在
DragSourceListener操作期间使用的DragSourceListener。
|
| Modifier and Type | Method and Description |
|---|---|
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的拖动操作的拖动源支持的放置操作
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)
如果默认拖动光标行为处于活动状态,则此方法将为拖动源支持的指定操作,放置目标操作和状态设置默认拖动光标,否则此方法不执行任何操作。
|
protected static final int DEFAULT
int由updateCurrentCursor()使用,表示
Cursor应该更改为默认(不下降)
Cursor 。
protected static final int ENTER
int由updateCurrentCursor()使用,表示
Cursor已经输入了
DropTarget 。
protected static final int OVER
int由updateCurrentCursor()使用,表示
Cursor超过了
DropTarget 。
protected static final int CHANGED
int由updateCurrentCursor(使用)的指示用户操作已经改变。
public DragSourceContext(java.awt.dnd.peer.DragSourceContextPeer dscp,
DragGestureEvent trigger,
Cursor dragCursor,
Image dragImage,
Point offset,
Transferable t,
DragSourceListener dsl)
DragSource ,该构造函数创建一个新DragSourceContext给予DragSourceContextPeer此拖累, DragGestureEvent触发该Drag的初始Cursor要使用的拖累,(可选的) Image ,同时拖动正在发生显示的偏移Image起始于触发事件瞬间的热点, Transferable主题数据,以及在DragSourceListener操作期间使用的DragSourceListener。
DragSourceContextPeer是null NullPointerException被抛出。
DragGestureEvent是null NullPointerException被抛出。
Cursor为null则抛出异常,并为此拖动操作激活默认拖动光标行为。
Image是null没有异常抛出。
Image不是null和偏移量是null NullPointerException抛出。
Transferable是null NullPointerException被抛出。
DragSourceListener是null没有异常抛出。
dscp - 这个拖动的
DragSourceContextPeer
trigger - 触发事件
dragCursor - 这个拖动操作的初始Cursor 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 DragGestureRecognizer的源操作等于
DnDConstants.ACTION_NONE 。
NullPointerException - 如果dscp,trigger或t为空,或者dragImage为非空,并且offset为null
public DragSource getDragSource()
DragSource ,实例化了这个
DragSourceContext 。
DragSource实例化了这个
DragSourceContext
public Component getComponent()
Component与此相关
DragSourceContext 。
Component开始拖动
public DragGestureEvent getTrigger()
DragGestureEvent最初引发的阻力。
public int getSourceActions()
DnDConstants的按位掩码,表示与此
DragSourceContext的拖动操作的拖动源支持的放置操作
DragSourceContext 。
public void setCursor(Cursor c)
Cursor 。
如果指定的Cursor为null ,则为此拖动操作启用默认拖动光标行为,否则将被禁用。
c - 此拖动操作的初始Cursor Cursor,或默认光标处理为null ;
有关拖放时光标处理的更多详细信息,请参阅class level documentation
public Cursor getCursor()
Cursor 。
Cursor
public void addDragSourceListener(DragSourceListener dsl) throws TooManyListenersException
DragSourceListener这个DragSourceContext如果一个尚未加入。
如果一个DragSourceListener已经存在,这个方法会抛出一个TooManyListenersException 。
dsl - 要添加的DragSourceListener 。
请注意,虽然null不禁止的,它不是作为一个参数接受。
TooManyListenersException - 如果已经添加了
DragSourceListener
public void removeDragSourceListener(DragSourceListener dsl)
DragSourceListener从这个
DragSourceContext 。
dsl - 要删除的DragSourceListener ;
注意,虽然null不禁止的,它不是作为一个参数可以接受
public void transferablesFlavorsChanged()
Transferable的
DataFlavor已更改。
public void dragEnter(DragSourceDragEvent dsde)
dragEnter在
DragSourceListener注册此
DragSourceContext和相关联的
DragSource ,并通过他们指定的
DragSourceDragEvent 。
dragEnter在界面
DragSourceListener
dsde -
DragSourceDragEvent
public void dragOver(DragSourceDragEvent dsde)
dragOver在
DragSourceListener注册该
DragSourceContext和相关联的
DragSource ,并通过他们指定的
DragSourceDragEvent 。
dragOver在界面
DragSourceListener
dsde -
DragSourceDragEvent
public void dragExit(DragSourceEvent dse)
dragExit在
DragSourceListener注册该
DragSourceContext和相关联的
DragSource ,并通过他们指定的
DragSourceEvent 。
dragExit在界面
DragSourceListener
dse -
DragSourceEvent
public void dropActionChanged(DragSourceDragEvent dsde)
dropActionChanged在
DragSourceListener这个注册小号
DragSourceContext及其关联
DragSource ,并通过他们指定的
DragSourceDragEvent 。
dropActionChanged在界面
DragSourceListener
dsde -
DragSourceDragEvent
public void dragDropEnd(DragSourceDropEvent dsde)
dragDropEnd在
DragSourceListener注册该
DragSourceContext和相关联的
DragSource ,并通过他们指定的
DragSourceDropEvent 。
dragDropEnd在界面
DragSourceListener
dsde -
DragSourceDropEvent
public void dragMouseMoved(DragSourceDragEvent dsde)
dragMouseMoved在
DragSourceMotionListener注册与
DragSource相关联的这个
DragSourceContext ,他们通过指定的
DragSourceDragEvent 。
dragMouseMoved在界面
DragSourceMotionListener
dsde -
DragSourceDragEvent
public Transferable getTransferable()
Transferable与此相关
DragSourceContext 。
Transferable
protected void updateCurrentCursor(int sourceAct,
int targetAct,
int status)
sourceAct - 拖动源支持的操作
targetAct - 放下目标动作
status -一个字段
DEFAULT ,
ENTER ,
OVER ,
CHANGED
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.