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

Class 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 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 。
        如果DragSourceContextPeer是null NullPointerException被抛出。
        如果DragGestureEvent是null NullPointerException被抛出。
        如果Cursor是null不会抛出异常,并且为此拖动操作激活默认拖动光标行为。
        如果Image是null不会引发异常。
        如果Image不是null ,则抛出偏移量为null NullPointerException 。
        如果Transferable是null NullPointerException被抛出。
        如果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