MouseDragEvent (JavaFX 17)

Module javafx.graphics
Package javafx.scene.input

## Class MouseDragEvent

- java.lang.Object
- - java.util.EventObject
  - - javafx.event.Event
    - - javafx.scene.input.InputEvent
      - - javafx.scene.input.MouseEvent
        - - javafx.scene.input.MouseDragEvent

- All Implemented Interfaces:
    `Serializable`, `Cloneable`

      public final class MouseDragEvent
      extends MouseEvent

  Mouse drag events are delivered to potential gesture targets during full press-drag-release gestures. The difference among different gesture types is described at `MouseEvent`.

  Full press-drag-release gesture can be started by calling `startFullDrag()` (on a node or scene) inside of a DRAG_DETECTED event handler. This call activates delivering of `MouseDragEvent`s to the nodes that are under cursor during the dragging gesture.

  When you drag a node, it's still under cursor, so it is considered being a potential gesture target during the whole gesture. If you need to drag a node to a different node and let the other node know about it, you need to ensure that the nodes under the dragged node are picked as the potential gesture targets. You can achieve this by calling `setMouseTransparent(true)` on the dragged node in a `MOUSE_PRESSED` handler and returning it back to false in a `MOUSE_RELEASED` handler. This way the nodes under the dragged node will receive the `MouseDragEvent`s, while all the `MouseEvent`s will still be delivered to the (currently mouse transparent) gesture source.

  The entered/exited events behave similarly to mouse entered/exited events, please see `MouseEvent` overview.

  Since:
    JavaFX 2.1
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static EventType<MouseDragEvent>` | `ANY` | Common supertype for all mouse event types.
    `static EventType<MouseDragEvent>` | `MOUSE_DRAG_ENTERED` | This event occurs when the gesture enters a node.
    `static EventType<MouseDragEvent>` | `MOUSE_DRAG_ENTERED_TARGET` | This event occurs when the gesture enters a node.
    `static EventType<MouseDragEvent>` | `MOUSE_DRAG_EXITED` | This event occurs when the gesture exits a node.
    `static EventType<MouseDragEvent>` | `MOUSE_DRAG_EXITED_TARGET` | This event occurs when the gesture exits a node.
    `static EventType<MouseDragEvent>` | `MOUSE_DRAG_OVER` | This event occurs when the gesture progresses within this node.
    `static EventType<MouseDragEvent>` | `MOUSE_DRAG_RELEASED` | This event occurs when the gesture ends (by releasing mouse button) on this node.

    - ### Fields declared in class javafx.scene.input.MouseEvent

      `DRAG_DETECTED, MOUSE_CLICKED, MOUSE_DRAGGED, MOUSE_ENTERED, MOUSE_ENTERED_TARGET, MOUSE_EXITED, MOUSE_EXITED_TARGET, MOUSE_MOVED, MOUSE_PRESSED, MOUSE_RELEASED`

    - ### Fields declared in class javafx.event.Event

      `consumed, eventType, NULL_SOURCE_TARGET, target`

    - ### Fields declared in class java.util.EventObject

      `source`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `MouseDragEvent​(Object source, EventTarget target, EventType<MouseDragEvent> eventType, double x, double y, double screenX, double screenY, MouseButton button, int clickCount, boolean shiftDown, boolean controlDown, boolean altDown, boolean metaDown, boolean primaryButtonDown, boolean middleButtonDown, boolean secondaryButtonDown, boolean backButtonDown, boolean forwardButtonDown, boolean synthesized, boolean popupTrigger, PickResult pickResult, Object gestureSource)` | Constructs new MouseDragEvent event.
    `MouseDragEvent​(Object source, EventTarget target, EventType<MouseDragEvent> eventType, double x, double y, double screenX, double screenY, MouseButton button, int clickCount, boolean shiftDown, boolean controlDown, boolean altDown, boolean metaDown, boolean primaryButtonDown, boolean middleButtonDown, boolean secondaryButtonDown, boolean synthesized, boolean popupTrigger, PickResult pickResult, Object gestureSource)` | Constructs new MouseDragEvent event.
    `MouseDragEvent​(EventType<MouseDragEvent> eventType, double x, double y, double screenX, double screenY, MouseButton button, int clickCount, boolean shiftDown, boolean controlDown, boolean altDown, boolean metaDown, boolean primaryButtonDown, boolean middleButtonDown, boolean secondaryButtonDown, boolean synthesized, boolean popupTrigger, PickResult pickResult, Object gestureSource)` | Constructs new MouseDragEvent event with null source and target.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Object` | `getGestureSource()` | Returns the source object of the ongoing gesture.
    `String` | `toString()` | Returns a string representation of this `MouseDragEvent` object.

    - ### Methods declared in class javafx.scene.input.MouseEvent

      `copyFor, copyFor, copyForMouseDragEvent, getButton, getClickCount, getPickResult, getSceneX, getSceneY, getScreenX, getScreenY, getX, getY, getZ, isAltDown, isBackButtonDown, isControlDown, isDragDetect, isForwardButtonDown, isMetaDown, isMiddleButtonDown, isPopupTrigger, isPrimaryButtonDown, isSecondaryButtonDown, isShiftDown, isShortcutDown, isStillSincePress, isSynthesized, setDragDetect`

    - ### Methods declared in class javafx.event.Event

      `clone, consume, fireEvent, getEventType, getTarget, isConsumed`

    - ### Methods declared in class java.util.EventObject

      `getSource`

    - ### Methods declared in class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### ANY

          public static final EventType<MouseDragEvent> ANY

      Common supertype for all mouse event types.

    - #### MOUSE_DRAG_OVER

          public static final EventType<MouseDragEvent> MOUSE_DRAG_OVER

      This event occurs when the gesture progresses within this node.

    - #### MOUSE_DRAG_RELEASED

          public static final EventType<MouseDragEvent> MOUSE_DRAG_RELEASED

      This event occurs when the gesture ends (by releasing mouse button) on this node.

    - #### MOUSE_DRAG_ENTERED_TARGET

          public static final EventType<MouseDragEvent> MOUSE_DRAG_ENTERED_TARGET

      This event occurs when the gesture enters a node. It's the bubbling variant, which is delivered also to all parents of the entered node (unless it was consumed). When notifications about mouse entering some of node's children are not desired, `MOUSE_DRAG_ENTERED` event handler should be used.
      See Also:
        `MouseEvent for more information about mouse entered/exited handling which is similar`

    - #### MOUSE_DRAG_ENTERED

          public static final EventType<MouseDragEvent> MOUSE_DRAG_ENTERED

      This event occurs when the gesture enters a node. This event type is delivered only to the entered node, if parents want to filter it or get the bubbling event, they need to use `MOUSE_DRAG_ENTERED_TARGET`.
      See Also:
        `MouseEvent for more information about mouse entered/exited handling which is similar`

    - #### MOUSE_DRAG_EXITED_TARGET

          public static final EventType<MouseDragEvent> MOUSE_DRAG_EXITED_TARGET

      This event occurs when the gesture exits a node. It's the bubbling variant, which is delivered also to all parents of the exited node (unless it was consumed). When notifications about mouse exiting some of node's children are not desired, `MOUSE_DRAG_EXITED` event handler should be used.
      See Also:
        `MouseEvent for more information about mouse entered/exited handling which is similar`

    - #### MOUSE_DRAG_EXITED

          public static final EventType<MouseDragEvent> MOUSE_DRAG_EXITED

      This event occurs when the gesture exits a node. This event type is delivered only to the exited node, if parents want to filter it or get the bubbling event, they need to use `MOUSE_DRAG_EXITED_TARGET`.
      See Also:
        `MouseEvent for more information about mouse entered/exited handling which is similar`

  - ### Constructor Detail

    - #### MouseDragEvent

          public MouseDragEvent​(Object source,
                                EventTarget target,
                                EventType<MouseDragEvent> eventType,
                                double x,
                                double y,
                                double screenX,
                                double screenY,
                                MouseButton button,
                                int clickCount,
                                boolean shiftDown,
                                boolean controlDown,
                                boolean altDown,
                                boolean metaDown,
                                boolean primaryButtonDown,
                                boolean middleButtonDown,
                                boolean secondaryButtonDown,
                                boolean synthesized,
                                boolean popupTrigger,
                                PickResult pickResult,
                                Object gestureSource)

      Constructs new MouseDragEvent event. Both `MouseEvent.isBackButtonDown()` and `MouseEvent.isForwardButtonDown()` will return false for this event
      Parameters:
        `source` - the source of the event, which can be `null`
        `target` - the target of the event, which can be `null`
        `eventType` - The type of the event
        `x` - The x with respect to the scene
        `y` - The y with respect to the scene
        `screenX` - The x coordinate relative to screen
        `screenY` - The y coordinate relative to screen
        `button` - the mouse button used
        `clickCount` - number of click counts
        `shiftDown` - true if shift modifier was pressed
        `controlDown` - true if control modifier was pressed
        `altDown` - true if alt modifier was pressed
        `metaDown` - true if meta modifier was pressed
        `primaryButtonDown` - true if primary button was pressed
        `middleButtonDown` - true if middle button was pressed
        `secondaryButtonDown` - true if secondary button was pressed
        `synthesized` - if this event was synthesized
        `popupTrigger` - whether this event denotes a popup trigger for current platform
        `pickResult` - pick result. Can be null, in this case a 2D pick result without any further values is constructed based on the scene coordinates and target
        `gestureSource` - source object of the ongoing gesture
      Since:
        JavaFX 8.0

    - #### MouseDragEvent

          public MouseDragEvent​(Object source,
                                EventTarget target,
                                EventType<MouseDragEvent> eventType,
                                double x,
                                double y,
                                double screenX,
                                double screenY,
                                MouseButton button,
                                int clickCount,
                                boolean shiftDown,
                                boolean controlDown,
                                boolean altDown,
                                boolean metaDown,
                                boolean primaryButtonDown,
                                boolean middleButtonDown,
                                boolean secondaryButtonDown,
                                boolean backButtonDown,
                                boolean forwardButtonDown,
                                boolean synthesized,
                                boolean popupTrigger,
                                PickResult pickResult,
                                Object gestureSource)

      Constructs new MouseDragEvent event.
      Parameters:
        `source` - the source of the event, which can be `null`
        `target` - the target of the event, which can be `null`
        `eventType` - The type of the event
        `x` - The x with respect to the scene
        `y` - The y with respect to the scene
        `screenX` - The x coordinate relative to screen
        `screenY` - The y coordinate relative to screen
        `button` - the mouse button used
        `clickCount` - number of click counts
        `shiftDown` - true if shift modifier was pressed
        `controlDown` - true if control modifier was pressed
        `altDown` - true if alt modifier was pressed
        `metaDown` - true if meta modifier was pressed
        `primaryButtonDown` - true if primary button was pressed
        `middleButtonDown` - true if middle button was pressed
        `secondaryButtonDown` - true if secondary button was pressed
        `backButtonDown` - true if back button was pressed
        `forwardButtonDown` - true if forward button was pressed
        `synthesized` - if this event was synthesized
        `popupTrigger` - whether this event denotes a popup trigger for current platform
        `pickResult` - pick result. Can be null, in this case a 2D pick result without any further values is constructed based on the scene coordinates and target
        `gestureSource` - source object of the ongoing gesture
      Since:
        12

    - #### MouseDragEvent

          public MouseDragEvent​(EventType<MouseDragEvent> eventType,
                                double x,
                                double y,
                                double screenX,
                                double screenY,
                                MouseButton button,
                                int clickCount,
                                boolean shiftDown,
                                boolean controlDown,
                                boolean altDown,
                                boolean metaDown,
                                boolean primaryButtonDown,
                                boolean middleButtonDown,
                                boolean secondaryButtonDown,
                                boolean synthesized,
                                boolean popupTrigger,
                                PickResult pickResult,
                                Object gestureSource)

      Constructs new MouseDragEvent event with null source and target. Both `MouseEvent.isBackButtonDown()` and `MouseEvent.isForwardButtonDown()` will return false for this event.
      Parameters:
        `eventType` - The type of the event
        `x` - The x with respect to the scene
        `y` - The y with respect to the scene
        `screenX` - The x coordinate relative to screen
        `screenY` - The y coordinate relative to screen
        `button` - the mouse button used
        `clickCount` - number of click counts
        `shiftDown` - true if shift modifier was pressed
        `controlDown` - true if control modifier was pressed
        `altDown` - true if alt modifier was pressed
        `metaDown` - true if meta modifier was pressed
        `primaryButtonDown` - true if primary button was pressed
        `middleButtonDown` - true if middle button was pressed
        `secondaryButtonDown` - true if secondary button was pressed
        `synthesized` - if this event was synthesized
        `popupTrigger` - whether this event denotes a popup trigger for current platform
        `pickResult` - pick result. Can be null, in this case a 2D pick result without any further values is constructed based on the scene coordinates
        `gestureSource` - source object of the ongoing gesture
      Since:
        JavaFX 8.0

  - ### Method Detail

    - #### getGestureSource

          public Object getGestureSource()

      Returns the source object of the ongoing gesture. Gesture source is the object that started the full press-drag-release gesture (by `startFullDrag` method being called on it).
      Returns:
        The source object of the gesture.

    - #### toString

          public String toString()

      Returns a string representation of this `MouseDragEvent` object.
      Overrides:
        `toString` in class `MouseEvent`
      Returns:
        a string representation of this `MouseDragEvent` object.