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.Modifier and Type | Interface and Description |
---|---|
public interface | 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. |
public interface | DragGestureListener
The listener interface for receiving drag gesture events. |
public interface | DragSourceListener
The |
public interface | DragSourceMotionListener
A listener interface for receiving mouse motion events during a drag operation. |
public interface | DropTargetListener
The |
Modifier and Type | Class and Description |
---|---|
public class | DnDConstants
This class contains constant values representing the type of action(s) to be performed by a Drag and Drop operation. |
pack-priv class | DnDEventMulticaster
A class extends |
public class | DragGestureEvent
A |
public abstract class | DragGestureRecognizer
The |
public class | DragSource
The
|
public abstract class | DragSourceAdapter
An abstract adapter class for receiving drag source events. |
public class | DragSourceContext
The |
public class | DragSourceDragEvent
The |
public class | DragSourceDropEvent
The |
public class | DragSourceEvent
This class is the base class for
|
public class | DropTarget
The |
public abstract class | DropTargetAdapter
An abstract adapter class for receiving drop target events. |
public class | DropTargetContext
A |
public class | DropTargetDragEvent
The |
public class | DropTargetDropEvent
The |
public class | DropTargetEvent
The |
public class | InvalidDnDOperationException
This exception is thrown by various methods in the java.awt.dnd package. |
public abstract class | MouseDragGestureRecognizer
This abstract subclass of |
pack-priv class | SerializationTester
Tests if an object can truly be serialized by serializing it to a null OutputStream. |