模块  java.desktop
软件包  java.awt.dnd

Class DragSourceContext

  • 实现的所有接口
    DragSourceListenerDragSourceMotionListenerSerializableEventListener

    public class DragSourceContext
    extends Object
    implements DragSourceListener, DragSourceMotionListener, Serializable
    DragSourceContext类负责管理拖放协议的启动器端。 特别是,它负责管理到DragSourceListenersDragSourceMotionListeners的拖动事件通知,并提供表示拖动操作的源数据的Transferable

    请注意, DragSourceContext本身实现了DragSourceListenerDragSourceMotionListener接口。 这是为了让平台端点( DragSourceContextPeer由创建的实例) DragSource通知DragSourceContext的状态变化在正在进行的操作。 这允许DragSourceContext对象在平台和拖动操作的启动器提供的侦听器之间插入自身。

    默认情况下, DragSourceContext将光标设置为适合拖放操作的当前状态。 例如,如果用户选择了the move action ,并且指针位于接受移动操作的目标上,则会显示默认移动光标。 当指针位于不接受传输的区域上时,将显示默认的“无丢弃”光标。

    setCursor(java.awt.Cursor)方法设置自定义光标时,将禁用此默认处理机制。 禁用默认处理时,通过监听DragSource事件并调用setCursor()方法,开发人员有责任使光标保持最新setCursor() 或者,您可以通过提供DragSourceDragSourceContext类的自定义实现来提供自定义游标行为。

    从以下版本开始:
    1.2
    另请参见:
    DragSourceListenerDragSourceMotionListenerDnDConstantsSerialized Form
    • 字段汇总

      字段  
      变量和类型 字段 描述
      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
    • 构造方法摘要

      构造方法  
      构造器 描述
      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
    • 字段详细信息

      • 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
        如果DragSourceContextPeernull NullPointerException被抛出。
        如果DragGestureEventnull NullPointerException被抛出。
        如果Cursornull不会抛出异常,并且为此拖动操作激活默认拖动光标行为。
        如果Imagenull不会引发异常。
        如果Image不是null ,则抛出偏移量为null NullPointerException
        如果Transferablenull NullPointerException被抛出。
        如果DragSourceListenernull不会引发异常。
        参数
        trigger - 触发事件
        dragCursor - 此拖动操作的初始Cursor或默认光标处理的null ; 有关拖放期间光标处理机制的更多详细信息,请参阅class level documentation
        dragImage - 要拖的 Image (或 null
        offset - 触发事件瞬间图像原点与热点的偏移量
        t - Transferable
        dsl - DragSourceListener
        异常
        IllegalArgumentException - 如果与触发事件关联的 Componentnull
        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 如果指定的Cursornull ,则会为此拖动操作激活默认拖动光标行为,否则将取消激活。
        参数
        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()
        通知对等方 TransferableDataFlavor已更改。
      • dragEnter

        public void dragEnter​(DragSourceDragEvent dsde)
        电话 dragEnterDragSourceListener这个注册小号 DragSourceContext ,并与相关 DragSource ,并将它们指定 DragSourceDragEvent
        Specified by:
        dragEnter在界面 DragSourceListener
        参数
        dsde - DragSourceDragEvent
      • dragOver

        public void dragOver​(DragSourceDragEvent dsde)
        电话 dragOverDragSourceListener这个注册小号 DragSourceContext ,并与相关 DragSource ,并将它们指定 DragSourceDragEvent
        Specified by:
        dragOver在界面 DragSourceListener
        参数
        dsde - DragSourceDragEvent
      • dragExit

        public void dragExit​(DragSourceEvent dse)
        电话 dragExitDragSourceListener这个注册小号 DragSourceContext ,并与相关 DragSource ,并将它们指定 DragSourceEvent
        Specified by:
        dragExit在界面 DragSourceListener
        参数
        dse - DragSourceEvent
      • dropActionChanged

        public void dropActionChanged​(DragSourceDragEvent dsde)
        电话 dropActionChangedDragSourceListener这个注册小号 DragSourceContext ,并与相关 DragSource ,并将它们指定 DragSourceDragEvent
        Specified by:
        dropActionChanged ,界面 DragSourceListener
        参数
        dsde - DragSourceDragEvent
      • dragDropEnd

        public void dragDropEnd​(DragSourceDropEvent dsde)
        电话 dragDropEndDragSourceListener这个注册小号 DragSourceContext ,并与相关 DragSource ,并将它们指定 DragSourceDropEvent
        Specified by:
        dragDropEnd在界面 DragSourceListener
        参数
        dsde - DragSourceDropEvent
      • dragMouseMoved

        public void dragMouseMoved​(DragSourceDragEvent dsde)
        电话 dragMouseMovedDragSourceMotionListener与注册小号 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 -一个领域的 DEFAULTENTEROVERCHANGED