Drag and Drop is a direct manipulation gesture found in many Graphical User Interface systems that provides a mechanism to transfer information between two entities logically associated with presentation elements in the GUI.
See: Description
Interface | Description |
---|---|
Autoscroll | During DnD operations it is possible that a user may wish to drop the subject of the operation on a region of a scrollable GUI control that is not currently visible to the user. |
DragGestureListener | The listener interface for receiving drag gesture events. |
DragSourceListener | The |
DragSourceMotionListener | A listener interface for receiving mouse motion events during a drag operation. |
DropTargetListener | The |
Class | Description |
---|---|
DnDConstants | This class contains constant values representing the type of action(s) to be performed by a Drag and Drop operation. |
DragGestureEvent | A |
DragGestureRecognizer | The |
DragSource | The |
DragSourceAdapter | An abstract adapter class for receiving drag source events. |
DragSourceContext | The |
DragSourceDragEvent | The |
DragSourceDropEvent | The |
DragSourceEvent | This class is the base class for |
DropTarget | The |
DropTarget.DropTargetAutoScroller | this protected nested class implements autoscrolling |
DropTargetAdapter | An abstract adapter class for receiving drop target events. |
DropTargetContext | A |
DropTargetDragEvent | The |
DropTargetDropEvent | The |
DropTargetEvent | The |
MouseDragGestureRecognizer | This abstract subclass of |
Exception | Description |
---|---|
InvalidDnDOperationException | This exception is thrown by various methods in the java.awt.dnd package. |
Drag and Drop is a direct manipulation gesture found in many Graphical User Interface systems that provides a mechanism to transfer information between two entities logically associated with presentation elements in the GUI. Normally driven by a physical gesture of a human user using an appropriate input device, Drag and Drop provides both a mechanism to enable continuous feedback regarding the possible outcome of any subsequent data transfer to the user during navigation over the presentation elements in the GUI, and the facilities to provide for any subsequent data negotiation and transfer.
This package defines the classes and interfaces necessary to perform Drag and Drop operations in Java. It defines classes for the drag-source and the drop-target, as well as events for transferring the data being dragged. This package also provides a means for giving visual feedback to the user throughout the duration of the Drag and Drop operation.
A typical Drag and Drop operation can be decomposed into the following states (not entirely sequentially):
DragSource
comes into existence, associated with some presentation element (Component
) in the GUI, to initiate a Drag and Drop of some potentially Transferable
data. DropTarget
(s) come into/go out of existence, associated with presentation elements in the GUI (Components), potentially capable of consuming Transferable
data types. DragGestureRecognizer
is obtained from the DragSource
and is associated with a Component
in order to track and identify any Drag initiating gesture by the user over the Component
. Component
, which the registered DragGestureRecognizer
detects, and notifies its DragGestureListener
of. Note: Although this API consistently refers to the stimulus for a drag and drop operation being a physical gesture by a human user, this does not preclude a programmatically driven DnD operation given the appropriate implementation of a DragSource
. This package contains the abstract class MouseDragGestureRecognizer
for recognizing mouse device gestures. Other abstract subclasses may be provided by the platform to support other input devices or particular Component
class semantics.
DragGestureListener
causes the DragSource
to initiate the Drag and Drop operation on behalf of the user, perhaps animating the GUI Cursor and/or rendering an Image
of the item(s) that are the subject of the operation. Component
(s) in the GUI with associated DropTarget
(s), the DragSource
receives notifications in order to provide "Drag Over" feedback effects, and the DropTarget
(s) receive notifications in order to provide "Drag Under" feedback effects based upon the operation(s) supported and the data type(s) involved. The gesture itself moves a logical cursor across the GUI hierarchy, intersecting the geometry of GUI Component(s), possibly resulting in the logical "Drag" cursor entering, crossing, and subsequently leaving Component
(s) and associated DropTarget
(s).
The DragSource
object manifests "Drag Over" feedback to the user, in the typical case by animating the GUI Cursor
associated with the logical cursor.
DropTarget
objects manifest "Drag Under" feedback to the user, in the typical case, by rendering animations into their associated GUI Component
(s) under the GUI Cursor.
The determination of the feedback effects, and the ultimate success or failure of the data transfer, should one occur, is parameterized as follows:
DragSource
and DropTarget
: Copy, Move or Reference(link). DragSource
and the set of data types comprehensible by the DropTarget
. DragSource
and DropTarget
receive notifications that include, and result in the type negotiation and transfer of, the information associated with the DragSource
via a Transferable
object.
© 1993–2017, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.