Module java.desktop
Package java.awt.dnd

Class DragGestureRecognizer

java.lang.Object
java.awt.dnd.DragGestureRecognizer
所有已实现的接口:
Serializable
直接已知的子类:
MouseDragGestureRecognizer

public abstract class DragGestureRecognizer extends Object implements Serializable
DragGestureRecognizer 是用于指定与特定 Component 关联的平台相关侦听器的抽象基类,以识别平台相关的拖动启动手势。

适当的 DragGestureRecognizer 子类实例是从与特定 Component 关联的 DragSource 或通过其 createDragGestureRecognizer() 方法从 Toolkit 对象获取的。

一旦 DragGestureRecognizer 与特定 Component 关联,它将在该 Component 上注册适当的侦听器接口,以跟踪传递给 Component 的输入事件。

一旦 DragGestureRecognizerComponent 上的事件序列识别为拖动启动手势,它将通过调用其单播 DragGestureListenergestureRecognized() 方法来通知它。

当具体的 DragGestureRecognizer 实例在其关联的 Component 上检测到拖动启动手势时,它会向其单播事件源上注册的 DragGestureListener 触发 DragGestureListener 事件。这个 DragGestureListener 负责导致关联的 DragSource 启动拖放操作(如果适用)。

参见:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected Component
    与此 DragGestureRecognizer 关联的 Component
    与此 DragGestureRecognizer 关联的 DragGestureListener
    protected DragSource
    与此 DragGestureRecognizer 关联的 DragSource
    protected ArrayList<InputEvent>
    DragGestureRecognizer "识别"为触发拖动的手势的事件列表(按顺序)。
    protected int
    代表此拖放操作中使用的操作类型的 int
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    给定用于此拖放操作的 DragSource 构造一个新的 DragGestureRecognizer
    protected
    给定用于此拖放操作的 DragSource,以及此 DragGestureRecognizer 应该“观察”以检测拖动启动手势的 Component,构造一个新的 DragGestureRecognizer
    protected
    给定用于此拖放操作的 DragSource,此 DragGestureRecognizer 应该“观察”以检测拖动启动手势的 Component,以及此拖放操作支持的操作类型,构造一个新的 DragGestureRecognizer
    protected
    给定用于此拖放操作的 DragSource,此 DragGestureRecognizer 应该“观察”以检测拖动启动手势的 Component,此拖放操作支持的操作类型,以及一旦检测到拖动启动手势就通知的 DragGestureListener,构造一个新的 DragGestureRecognizer
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    注册一个新的 DragGestureListener
    protected void
    由此 Recognizer 在 Component 上注册的侦听器应记录所有被识别为组成拖放启动手势系列事件的事件。
    protected void
    fireDragGestureRecognized(int dragAction, Point p)
    通知 DragGestureListener 发生了拖放启动手势。
    此方法返回 DragGestureRecognizer 用于检测拖动启动手势的“观察” Component
    此方法返回此 DragGestureRecognizer 将用于处理拖放操作的 DragSource
    int
    此方法返回一个表示此拖放操作将支持的操作类型的 int。
    此方法返回启动拖放操作的事件系列中的第一个事件。
    protected abstract void
    注册此 DragGestureRecognizer 的 Listeners 到 Component,子类必须重写此方法。
    void
    注销当前的 DragGestureListener。
    void
    重置 Recognizer,如果当前正在识别手势,则忽略它。
    void
    设置 DragGestureRecognizer 关联的 Component,根据需要调用 registerListeners() 和 unregisterListeners()。
    void
    setSourceActions(int actions)
    此方法设置此拖放操作的允许源拖动操作类型。
    protected abstract void
    注销此 DragGestureRecognizer 的 Listeners 与 Component,子类必须重写此方法。

    Methods declared in class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • dragSource

      protected DragSource dragSource
      与此 DragGestureRecognizer 关联的 DragSource
    • component

      protected Component component
      与此 DragGestureRecognizer 关联的 Component
    • dragGestureListener

      protected transient DragGestureListener dragGestureListener
      与此 DragGestureRecognizer 关联的 DragGestureListener
    • sourceActions

      protected int sourceActions
      代表此拖放操作中使用的操作类型的 int
    • events

      protected ArrayList<InputEvent> events
      DragGestureRecognizer “识别”为触发拖动的手势的事件列表(按顺序)。
  • Constructor Details

    • DragGestureRecognizer

      protected DragGestureRecognizer(DragSource ds, Component c, int sa, DragGestureListener dgl)
      给定用于此拖放操作的 DragSource,此 DragGestureRecognizer 应该“观察”以检测拖动启动手势的 Component,此拖放操作支持的操作类型,以及一旦检测到拖动启动手势就通知的 DragGestureListener,构造一个新的 DragGestureRecognizer
      参数:
      ds - 此 DragGestureRecognizer 将用于处理拖放操作的 DragSource
      c - 此 DragGestureRecognizer 应该“观察”事件流以检测拖动启动手势的 Component。如果此值为 null,则 DragGestureRecognizer 不与任何 Component 关联。
      sa - 此拖放操作将支持的 DnDConstants 的集合(逻辑 OR)。
      dgl - 当检测到拖动手势时通知的 DragGestureRecognizer
      抛出:
      IllegalArgumentException - 如果 ds 为 null
    • DragGestureRecognizer

      protected DragGestureRecognizer(DragSource ds, Component c, int sa)
      给定用于此拖放操作的 DragSource,此 DragGestureRecognizer 应该“观察”以检测拖动启动手势的 Component,以及此拖放操作支持的操作类型,构造一个新的 DragGestureRecognizer
      参数:
      ds - 此 DragGestureRecognizer 将用于处理拖放操作的 DragSource
      c - 此 DragGestureRecognizer 应该“观察”事件流以检测拖动启动手势的 Component。如果此值为 null,则 DragGestureRecognizer 不与任何 Component 关联。
      sa - 此拖放操作将支持的 DnDConstants 的集合(逻辑 OR)。
      抛出:
      IllegalArgumentException - 如果 ds 为 null
    • DragGestureRecognizer

      protected DragGestureRecognizer(DragSource ds, Component c)
      给定用于此拖放操作的 DragSource,以及此 DragGestureRecognizer 应该“观察”以检测拖动启动手势的 Component,构造一个新的 DragGestureRecognizer
      参数:
      ds - 此 DragGestureRecognizer 将用于处理拖放操作的 DragSource
      c - 此 DragGestureRecognizer 应该“观察”事件流以检测拖动启动手势的 Component。如果此值为 null,则 DragGestureRecognizer 不与任何 Component 关联。
      抛出:
      IllegalArgumentException - 如果 ds 为 null
    • DragGestureRecognizer

      protected DragGestureRecognizer(DragSource ds)
      给定用于此拖放操作的 DragSource,构造一个新的 DragGestureRecognizer
      参数:
      ds - 此 DragGestureRecognizer 将用于处理拖放操作的 DragSource
      抛出:
      IllegalArgumentException - 如果 ds 为 null
  • Method Details

    • registerListeners

      protected abstract void registerListeners()
      注册此 DragGestureRecognizer 的 Listeners 到 Component,子类必须重写此方法。
    • unregisterListeners

      protected abstract void unregisterListeners()
      注销此 DragGestureRecognizer 的 Listeners 与 Component,子类必须重写此方法。
    • getDragSource

      public DragSource getDragSource()
      此方法返回此 DragGestureRecognizer 将用于处理拖放操作的 DragSource
      返回:
      DragSource
    • getComponent

      public Component getComponent()
      该方法返回由DragGestureRecognizer用于拖动启动手势的“观察”Component
      返回:
      与此DragGestureRecognizer关联的Component
    • setComponent

      public void setComponent(Component c)
      设置DragGestureRecognizer关联的Component,根据需要调用registerListeners()和unregisterListeners()。
      参数:
      c - Component或null
    • getSourceActions

      public int getSourceActions()
      该方法返回表示此拖放操作将支持的操作类型的int。
      返回:
      当前允许的源操作
    • setSourceActions

      public void setSourceActions(int actions)
      该方法设置此拖放操作的允许源拖动操作。
      参数:
      actions - 允许的源拖动操作
    • getTriggerEvent

      public InputEvent getTriggerEvent()
      该方法返回启动拖放操作的事件系列中的第一个事件。
      返回:
      触发拖动手势的初始事件
    • resetRecognizer

      public void resetRecognizer()
      重置Recognizer,如果当前正在识别手势,则忽略它。
    • addDragGestureListener

      public void addDragGestureListener(DragGestureListener dgl) throws TooManyListenersException
      注册一个新的DragGestureListener
      参数:
      dgl - 要注册到此DragGestureRecognizerDragGestureListener
      抛出:
      TooManyListenersException - 如果已经添加了DragGestureListener
    • removeDragGestureListener

      public void removeDragGestureListener(DragGestureListener dgl)
      注销当前的DragGestureListener
      参数:
      dgl - 要从此DragGestureRecognizer注销的DragGestureListener
      抛出:
      IllegalArgumentException - 如果dgl不等于当前注册的DragGestureListener
    • fireDragGestureRecognized

      protected void fireDragGestureRecognized(int dragAction, Point p)
      通知DragGestureListener发生了拖放启动手势。然后重置Recognizer的状态。
      参数:
      dragAction - 用户手势最初选择的操作
      p - 手势起始点(在Component坐标中)
    • appendEvent

      protected void appendEvent(InputEvent awtie)
      由此Recognizer在Component上注册的Listeners应记录所有被识别为组成拖放启动手势系列事件的事件。通过此API。

      此方法由DragGestureRecognizer实现使用,将InputEvent子类(它认为是组成拖放操作的事件系列之一)添加到此DragGestureRecognizer内部维护的事件数组中。

      参数:
      awtie - 要添加到此DragGestureRecognizer内部事件数组的InputEvent。请注意,null不是有效值,将被忽略。