MouseDragGestureRecognizer (Java SE 26 & JDK 26)
Description: declaration: module: java.desktop, package: java.awt.dnd, class: MouseDragGestureRecognizer
Keywords: java.awt.dnd.MouseDragGestureRecognizer class

# Class MouseDragGestureRecognizer

java.lang.Object
java.awt.dnd.DragGestureRecognizer
java.awt.dnd.MouseDragGestureRecognizer

All Implemented Interfaces:
  `MouseListener, MouseMotionListener, Serializable, EventListener`

public abstract class MouseDragGestureRecognizer extends DragGestureRecognizer implements MouseListener, MouseMotionListener
This abstract subclass of `DragGestureRecognizer` defines a `DragGestureRecognizer` for mouse-based gestures. Each platform implements its own concrete subclass of this class, available via the Toolkit.createDragGestureRecognizer() method, to encapsulate the recognition of the platform dependent mouse gesture(s) that initiate a Drag and Drop operation.

Mouse drag gesture recognizers should honor the drag gesture motion threshold, available through `DragSource.getDragThreshold()`. A drag gesture should be recognized only when the distance in either the horizontal or vertical direction between the location of the latest mouse dragged event and the location of the corresponding mouse button pressed event is greater than the drag gesture motion threshold.

Drag gesture recognizers created with `DragSource.createDefaultDragGestureRecognizer(Component, int, DragGestureListener)` follow this convention.

See Also:
  - `DragGestureListener`
  - `DragGestureEvent`
  - `DragSource`
  - Serialized Form

- ## Field Summary

  ### Fields declared in class DragGestureRecognizer

  `component, dragGestureListener, dragSource, events, sourceActions`
  Modifier and Type
  Field
  Description
  `protected Component`
  `component`
  The `Component` associated with this `DragGestureRecognizer`.
  `protected DragGestureListener`
  `dragGestureListener`
  The `DragGestureListener` associated with this `DragGestureRecognizer`.
  `protected DragSource`
  `dragSource`
  The `DragSource` associated with this `DragGestureRecognizer`.
  `protected ArrayList<InputEvent>`
  `events`
  The list of events (in order) that the `DragGestureRecognizer` "recognized" as a "gesture" that triggers a drag.
  `protected int`
  `sourceActions`
  An `int` representing the type(s) of action(s) used in this Drag and Drop operation.

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `MouseDragGestureRecognizer(DragSource ds)`
  Construct a new `MouseDragGestureRecognizer` given the `DragSource` for the `Component`.
  `protected`
  `MouseDragGestureRecognizer(DragSource ds, Component c)`
  Construct a new `MouseDragGestureRecognizer` given the `DragSource` for the `Component` c, and the `Component` to observe.
  `protected`
  `MouseDragGestureRecognizer(DragSource ds, Component c, int act)`
  Construct a new `MouseDragGestureRecognizer` given the `DragSource` for the `Component` c, the `Component` to observe, and the action(s) permitted for this drag operation.
  `protected`
  `MouseDragGestureRecognizer(DragSource ds, Component c, int act, DragGestureListener dgl)`
  Construct a new `MouseDragGestureRecognizer` given the `DragSource` for the `Component` c, the `Component` to observe, the action(s) permitted for this drag operation, and the `DragGestureListener` to notify when a drag gesture is detected.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `mouseClicked(MouseEvent e)`
  Invoked when the mouse has been clicked on a component.
  `void`
  `mouseDragged(MouseEvent e)`
  Invoked when a mouse button is pressed on a component.
  `void`
  `mouseEntered(MouseEvent e)`
  Invoked when the mouse enters a component.
  `void`
  `mouseExited(MouseEvent e)`
  Invoked when the mouse exits a component.
  `void`
  `mouseMoved(MouseEvent e)`
  Invoked when the mouse button has been moved on a component (with no buttons no down).
  `void`
  `mousePressed(MouseEvent e)`
  Invoked when a mouse button has been pressed on a `Component`.
  `void`
  `mouseReleased(MouseEvent e)`
  Invoked when a mouse button has been released on a component.
  `protected void`
  `registerListeners()`
  register this DragGestureRecognizer's Listeners with the Component
  `protected void`
  `unregisterListeners()`
  unregister this DragGestureRecognizer's Listeners with the Component subclasses must override this method

  ### Methods declared in class DragGestureRecognizer

  `addDragGestureListener, appendEvent, fireDragGestureRecognized, getComponent, getDragSource, getSourceActions, getTriggerEvent, removeDragGestureListener, resetRecognizer, setComponent, setSourceActions`
  Modifier and Type
  Method
  Description
  `void`
  `addDragGestureListener(DragGestureListener dgl)`
  Register a new `DragGestureListener`.
  `protected void`
  `appendEvent(InputEvent awtie)`
  Listeners registered on the Component by this Recognizer shall record all Events that are recognized as part of the series of Events that go to comprise a Drag and Drop initiating gesture via this API.
  `protected void`
  `fireDragGestureRecognized(int dragAction, Point p)`
  Notify the DragGestureListener that a Drag and Drop initiating gesture has occurred.
  `Component`
  `getComponent()`
  This method returns the `Component` that is to be "observed" by the `DragGestureRecognizer` for drag initiating gestures.
  `DragSource`
  `getDragSource()`
  This method returns the `DragSource` this `DragGestureRecognizer` will use in order to process the Drag and Drop operation.
  `int`
  `getSourceActions()`
  This method returns an int representing the type of action(s) this Drag and Drop operation will support.
  `InputEvent`
  `getTriggerEvent()`
  This method returns the first event in the series of events that initiated the Drag and Drop operation.
  `void`
  `removeDragGestureListener(DragGestureListener dgl)`
  unregister the current DragGestureListener
  `void`
  `resetRecognizer()`
  Reset the Recognizer, if its currently recognizing a gesture, ignore it.
  `void`
  `setComponent(Component c)`
  set the Component that the DragGestureRecognizer is associated with registerListeners() and unregisterListeners() are called as a side effect as appropriate.
  `void`
  `setSourceActions(int actions)`
  This method sets the permitted source drag action(s) for this Drag and Drop operation.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### MouseDragGestureRecognizer

    protected MouseDragGestureRecognizer(DragSource ds, Component c, int act, DragGestureListener dgl)
    Construct a new `MouseDragGestureRecognizer` given the `DragSource` for the `Component` c, the `Component` to observe, the action(s) permitted for this drag operation, and the `DragGestureListener` to notify when a drag gesture is detected.
    Parameters:
      `ds` - The DragSource for the Component c
      `c` - The Component to observe
      `act` - The actions permitted for this Drag
      `dgl` - The DragGestureListener to notify when a gesture is detected

  - ### MouseDragGestureRecognizer

    protected MouseDragGestureRecognizer(DragSource ds, Component c, int act)
    Construct a new `MouseDragGestureRecognizer` given the `DragSource` for the `Component` c, the `Component` to observe, and the action(s) permitted for this drag operation.
    Parameters:
      `ds` - The DragSource for the Component c
      `c` - The Component to observe
      `act` - The actions permitted for this drag

  - ### MouseDragGestureRecognizer

    protected MouseDragGestureRecognizer(DragSource ds, Component c)
    Construct a new `MouseDragGestureRecognizer` given the `DragSource` for the `Component` c, and the `Component` to observe.
    Parameters:
      `ds` - The DragSource for the Component c
      `c` - The Component to observe

  - ### MouseDragGestureRecognizer

    protected MouseDragGestureRecognizer(DragSource ds)
    Construct a new `MouseDragGestureRecognizer` given the `DragSource` for the `Component`.
    Parameters:
      `ds` - The DragSource for the Component

- ## Method Details

  - ### registerListeners

    protected void registerListeners()
    register this DragGestureRecognizer's Listeners with the Component
    Specified by:
      `registerListeners` in class `DragGestureRecognizer`

  - ### unregisterListeners

    protected void unregisterListeners()
    unregister this DragGestureRecognizer's Listeners with the Component subclasses must override this method
    Specified by:
      `unregisterListeners` in class `DragGestureRecognizer`

  - ### mouseClicked

    public void mouseClicked(MouseEvent e)
    Invoked when the mouse has been clicked on a component.
    Specified by:
      `mouseClicked` in interface `MouseListener`
    Parameters:
      `e` - the `MouseEvent`

  - ### mousePressed

    public void mousePressed(MouseEvent e)
    Invoked when a mouse button has been pressed on a `Component`.
    Specified by:
      `mousePressed` in interface `MouseListener`
    Parameters:
      `e` - the `MouseEvent`

  - ### mouseReleased

    public void mouseReleased(MouseEvent e)
    Invoked when a mouse button has been released on a component.
    Specified by:
      `mouseReleased` in interface `MouseListener`
    Parameters:
      `e` - the `MouseEvent`

  - ### mouseEntered

    public void mouseEntered(MouseEvent e)
    Invoked when the mouse enters a component.
    Specified by:
      `mouseEntered` in interface `MouseListener`
    Parameters:
      `e` - the `MouseEvent`

  - ### mouseExited

    public void mouseExited(MouseEvent e)
    Invoked when the mouse exits a component.
    Specified by:
      `mouseExited` in interface `MouseListener`
    Parameters:
      `e` - the `MouseEvent`

  - ### mouseDragged

    public void mouseDragged(MouseEvent e)
    Invoked when a mouse button is pressed on a component.
    Specified by:
      `mouseDragged` in interface `MouseMotionListener`
    Parameters:
      `e` - the `MouseEvent`

  - ### mouseMoved

    public void mouseMoved(MouseEvent e)
    Invoked when the mouse button has been moved on a component (with no buttons no down).
    Specified by:
      `mouseMoved` in interface `MouseMotionListener`
    Parameters:
      `e` - the `MouseEvent`