JavaTM Platform
Standard Ed. 6

java.awt.dnd
类 DragSourceContext

java.lang.Object
  继承者 java.awt.dnd.DragSourceContext
所有已实现的接口:
DragSourceListener, DragSourceMotionListener, Serializable, EventListener

public class DragSourceContext
     
extends Object
implements DragSourceListener, DragSourceMotionListener, Serializable

DragSourceContext 类负责管理 Drag 和 Drop 协议的起始端。特别是负责管理对 DragSourceListenerDragSourceMotionListener 的拖动事件通知,并提供表示拖动操作源数据的 Transferable

注意,DragSourceContext 自行实现 DragSourceListenerDragSourceMotionListener 接口。这就允许 DragSource 创建的平台同位体(DragSourceContextPeer 实例)能够在正在进行的操作中通知 DragSourceContext 状态改变。从而允许 DragSourceContext 介入平台和拖动操作起始端所提供的侦听器之间。

从以下版本开始:
1.2
另请参见:
DragSourceListener, DragSourceMotionListener, 序列化表格

字段摘要
protected static int CHANGED
          updateCurrentCursor() 使用的 int 值,指示用户操作已改变。
protected static int DEFAULT
          updateCurrentCursor() 使用的 int 值,指示应该将 Cursor 改为默认(未放置)的 Cursor
protected static int ENTER
          updateCurrentCursor() 使用的 int 值,指示 Cursor 已进入 DropTarget
protected static int OVER
          updateCurrentCursor() 使用的 int 值,指示 Cursor 处于 DropTarget 上。
 
构造方法摘要
DragSourceContext(java.awt.dnd.peer.DragSourceContextPeer dscp, DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point offset, Transferable t, DragSourceListener dsl)
          从 DragSource 调用,此构造方法创建一个新 DragSourceContext,使其具有为此 Drag 指定的 DragSourceContextPeer、触发该 Drag 的 DragGestureEvent、用于该 Drag 的初始 Cursor、进行 Drag 时显示的 Image(可选)、Image 原点与触发事件时距离热点的偏移量、Transferable 目标数据、Drag 和 Drop 操作期间使用的 DragSourceListener
 
方法摘要
 void addDragSourceListener(DragSourceListener dsl)
          如果尚未将 DragSourceListener 添加到此 DragSourceContext,则添加一个。
 void dragDropEnd(DragSourceDropEvent dsde)
          对向此 DragSourceContext 及其关联 DragSource 注册的 DragSourceListener 调用 dragDropEnd,并将指定的 DragSourceDropEvent 传递给它们。
 void dragEnter(DragSourceDragEvent dsde)
          对向此 DragSourceContext 及其关联 DragSource 注册的 DragSourceListener 调用 dragEnter,并将指定的 DragSourceDragEvent 传递给它们。
 void dragExit(DragSourceEvent dse)
          对向此 DragSourceContext 及其关联 DragSource 注册的 DragSourceListener 调用 dragExit,并将指定的 DragSourceEvent 传递给它们。
 void dragMouseMoved(DragSourceDragEvent dsde)
          对向与此 DragSourceContext 关联的 DragSource 注册的 DragSourceMotionListener 调用 dragMouseMoved,并将指定的 DragSourceDragEvent 传递给它们。
 void dragOver(DragSourceDragEvent dsde)
          对向此 DragSourceContext 及其关联 DragSource 注册的 DragSourceContext 调用 dragOver,并将指定的 DragSourceDragEvent 传递给它们。
 void dropActionChanged(DragSourceDragEvent dsde)
          对向此 DragSourceContext 及其关联 DragSource 注册的 DragSourceListener 调用 dropActionChanged,并将指定的 DragSourceDragEvent 传递给它们。
 Component getComponent()
          返回与此 DragSourceContext 关联的 Component
 Cursor getCursor()
          返回当前的拖动 Cursor
 DragSource getDragSource()
          返回实例化此 DragSourceContextDragSource
 int getSourceActions()
          返回 DnDConstants 的位掩码,表示拖动源针对与此 DragSourceContext 关联的拖动操作所支持的放置动作集合。
 Transferable getTransferable()
          返回与此 DragSourceContext 关联的 Transferable
 DragGestureEvent getTrigger()
          返回最初触发该拖动的 DragGestureEvent
 void removeDragSourceListener(DragSourceListener dsl)
          从此 DragSourceContext 移除指定的 DragSourceListener
 void setCursor(Cursor c)
          将此拖动操作的光标设置为指定的 Cursor
 void transferablesFlavorsChanged()
          通知同位体该 TransferableDataFlavor 已改变。
protected  void updateCurrentCursor(int sourceAct, int targetAct, int status)
          如果默认拖动光标行为处于活动状态,则此方法将为默认拖动光标设置受拖动源、放置目标动作和状态支持的指定动作,否则此方法不执行任何操作。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

DEFAULT

protected static final int DEFAULT
updateCurrentCursor() 使用的 int 值,指示应该将 Cursor 改为默认(未放置)的 Cursor

另请参见:
常量字段值

ENTER

protected static final int ENTER
updateCurrentCursor() 使用的 int 值,指示 Cursor 已进入 DropTarget

另请参见:
常量字段值

OVER

protected static final int OVER
updateCurrentCursor() 使用的 int 值,指示 Cursor 处于 DropTarget 上。

另请参见:
常量字段值

CHANGED

protected static final int CHANGED
updateCurrentCursor() 使用的 int 值,指示用户操作已改变。

另请参见:
常量字段值
构造方法详细信息

DragSourceContext

public DragSourceContext(java.awt.dnd.peer.DragSourceContextPeer dscp,
                         DragGestureEvent trigger,
                         Cursor dragCursor,
                         Image dragImage,
                         Point offset,
                         Transferable t,
                         DragSourceListener dsl)
DragSource 调用,此构造方法创建一个新 DragSourceContext,使其具有为此 Drag 指定的 DragSourceContextPeer、触发该 Drag 的 DragGestureEvent、用于该 Drag 的初始 Cursor、进行 Drag 时显示的 Image(可选)、 Image 原点与触发事件时距离热点的偏移量、 Transferable 目标数据、Drag 和 Drop 操作期间使用的 DragSourceListener
如果 DragSourceContextPeernull,则抛出 NullPointerException
如果 DragGestureEventnull,则抛出 NullPointerException
如果 Cursornull,不抛出任何异常,并为此次拖动操作激活默认的拖动光标行为。
如果 Imagenull,不抛出任何异常。
如果 Image 不为 null 且 offset 为 null,则抛出 NullPointerException
如果 Transferablenull,则抛出 NullPointerException
如果 DragSourceListenernull,不抛出任何异常。

参数:
dscp - 此 Drag 的 DragSourceContextPeer
trigger - 触发事件
dragCursor - 初始的 Cursor
dragImage - 要拖动的 Image(或者为 null
offset - 图像原点与触发事件时距离热点的偏移量
t - Transferable
dsl - DragSourceListener
抛出:
IllegalArgumentException - 如果与触发事件关联的 Componentnull
IllegalArgumentException - 如果触发事件的 DragSourcenull
IllegalArgumentException - 如果该触发事件的拖动动作为 DnDConstants.ACTION_NONE
IllegalArgumentException - 如果与触发事件关联的 DragGestureRecognizer 的源动作等于 DnDConstants.ACTION_NONE
NullPointerException - 如果 dscp、trigger 或 t 为 null,或者 dragImage 为非 null 且 offset 为 null
方法详细信息

getDragSource

public DragSource getDragSource()
返回实例化此 DragSourceContextDragSource

返回:
实例化此 DragSourceContextDragSource

getComponent

public Component getComponent()
返回与此 DragSourceContext 关联的 Component

返回:
启动拖动的 Component

getTrigger

public DragGestureEvent getTrigger()
返回最初触发该拖动的 DragGestureEvent

返回:
触发拖动的 Event

getSourceActions

public int getSourceActions()
返回 DnDConstants 的位掩码,表示拖动源针对与此 DragSourceContext 关联的拖动操作所支持的放置动作集合。

返回:
拖动源支持的放置动作

setCursor

public void setCursor(Cursor c)
将此拖动操作的光标设置为指定的 Cursor。 如果指定的 Cursornull,则为此拖动操作激活默认的拖动光标行为,否则停用该默认行为。

参数:
c - 要显示的 Cursor,或者为 null,表示激活默认拖动光标行为

getCursor

public Cursor getCursor()
返回当前的拖动 Cursor

返回:
当前的拖动 Cursor

addDragSourceListener

public void addDragSourceListener(DragSourceListener dsl)
                           throws TooManyListenersException
如果尚未将 DragSourceListener 添加到此 DragSourceContext,则添加一个。如果 DragSourceListener 已存在,则此方法抛出 TooManyListenersException

参数:
dsl - 要添加的 DragSourceListener。注意,虽然不禁止 null,但它作为参数是不可接受的值。

抛出:
TooManyListenersException - 如果已添加 DragSourceListener
TooManyListenersException

removeDragSourceListener

public void removeDragSourceListener(DragSourceListener dsl)
从此 DragSourceContext 移除指定的 DragSourceListener

参数:
dsl - 要移除的 DragSourceListener;注意,虽然不禁止 null,但它作为参数是不可接受的值。

transferablesFlavorsChanged

public void transferablesFlavorsChanged()
通知同位体该 TransferableDataFlavor 已改变。


dragEnter

public void dragEnter(DragSourceDragEvent dsde)
对向此 DragSourceContext 及其关联 DragSource 注册的 DragSourceListener 调用 dragEnter,并将指定的 DragSourceDragEvent 传递给它们。

指定者:
接口 DragSourceListener 中的 dragEnter
参数:
dsde - DragSourceDragEvent

dragOver

public void dragOver(DragSourceDragEvent dsde)
对向此 DragSourceContext 及其关联 DragSource 注册的 DragSourceContext 调用 dragOver,并将指定的 DragSourceDragEvent 传递给它们。

指定者:
接口 DragSourceListener 中的 dragOver
参数:
dsde - DragSourceDragEvent

dragExit

public void dragExit(DragSourceEvent dse)
对向此 DragSourceContext 及其关联 DragSource 注册的 DragSourceListener 调用 dragExit,并将指定的 DragSourceEvent 传递给它们。

指定者:
接口 DragSourceListener 中的 dragExit
参数:
dse - DragSourceEvent

dropActionChanged

public void dropActionChanged(DragSourceDragEvent dsde)
对向此 DragSourceContext 及其关联 DragSource 注册的 DragSourceListener 调用 dropActionChanged,并将指定的 DragSourceDragEvent 传递给它们。

指定者:
接口 DragSourceListener 中的 dropActionChanged
参数:
dsde - DragSourceDragEvent

dragDropEnd

public void dragDropEnd(DragSourceDropEvent dsde)
对向此 DragSourceContext 及其关联 DragSource 注册的 DragSourceListener 调用 dragDropEnd,并将指定的 DragSourceDropEvent 传递给它们。

指定者:
接口 DragSourceListener 中的 dragDropEnd
参数:
dsde - DragSourceDropEvent

dragMouseMoved

public void dragMouseMoved(DragSourceDragEvent dsde)
对向与此 DragSourceContext 关联的 DragSource 注册的 DragSourceMotionListener 调用 dragMouseMoved,并将指定的 DragSourceDragEvent 传递给它们。

指定者:
接口 DragSourceMotionListener 中的 dragMouseMoved
参数:
dsde - DragSourceDragEvent
从以下版本开始:
1.4

getTransferable

public Transferable getTransferable()
返回与此 DragSourceContext 关联的 Transferable

返回:
Transferable

updateCurrentCursor

protected void updateCurrentCursor(int sourceAct,
                                   int targetAct,
                                   int status)
如果默认拖动光标行为处于活动状态,则此方法将为默认拖动光标设置受拖动源、放置目标动作和状态支持的指定动作,否则此方法不执行任何操作。

参数:
sourceAct - 受拖动源支持的动作
targetAct - 放置目标动作
status - DEFAULTENTEROVERCHANGED 字段之一

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策