DragSource (Java Platform SE 6) (original) (raw)
java.awt.dnd
Class DragSource
java.lang.Object
java.awt.dnd.DragSource
All Implemented Interfaces:
public class DragSource
extends Object
implements Serializable
The DragSource
is the entity responsible for the initiation of the Drag and Drop operation, and may be used in a number of scenarios:
- 1 default instance per JVM for the lifetime of that JVM.
- 1 instance per class of potential Drag Initiator object (e.g TextField). [implementation dependent]
- 1 per instance of a particular
Component
, or application specific object associated with aComponent
instance in the GUI. [implementation dependent] - Some other arbitrary association. [implementation dependent]
Once the
DragSource
is obtained, aDragGestureRecognizer
should also be obtained to associate theDragSource
with a particularComponent
.
The initial interpretation of the user's gesture, and the subsequent starting of the drag operation are the responsibility of the implementingComponent
, which is usually implemented by a DragGestureRecognizer
.
When a drag gesture occurs, the DragSource
's startDrag() method shall be invoked in order to cause processing of the user's navigational gestures and delivery of Drag and Drop protocol notifications. ADragSource
shall only permit a single Drag and Drop operation to be current at any one time, and shall reject any further startDrag() requests by throwing an IllegalDnDOperationException
until such time as the extant operation is complete.
The startDrag() method invokes the createDragSourceContext() method to instantiate an appropriate DragSourceContext
and associate the DragSourceContextPeer
with that.
If the Drag and Drop System is unable to initiate a drag operation for some reason, the startDrag() method throws a java.awt.dnd.InvalidDnDOperationException
to signal such a condition. Typically this exception is thrown when the underlying platform system is either not in a state to initiate a drag, or the parameters specified are invalid.
Note that during the drag, the set of operations exposed by the source at the start of the drag operation may not change until the operation is complete. The operation(s) are constant for the duration of the operation with respect to the DragSource
.
Since:
1.2
See Also:
Field Summary | |
---|---|
static Cursor | DefaultCopyDrop The default Cursor to use with a copy operation indicating that a drop is currently allowed. |
static Cursor | DefaultCopyNoDrop The default Cursor to use with a copy operation indicating that a drop is currently not allowed. |
static Cursor | DefaultLinkDrop The default Cursor to use with a link operation indicating that a drop is currently allowed. |
static Cursor | DefaultLinkNoDrop The default Cursor to use with a link operation indicating that a drop is currently not allowed. |
static Cursor | DefaultMoveDrop The default Cursor to use with a move operation indicating that a drop is currently allowed. |
static Cursor | DefaultMoveNoDrop The default Cursor to use with a move operation indicating that a drop is currently not allowed. |
Constructor Summary |
---|
DragSource() Creates a new DragSource. |
Method Summary | |
---|---|
void | addDragSourceListener(DragSourceListener dsl) Adds the specified DragSourceListener to thisDragSource to receive drag source events during drag operations intiated with this DragSource. |
void | addDragSourceMotionListener(DragSourceMotionListener dsml) Adds the specified DragSourceMotionListener to thisDragSource to receive drag motion events during drag operations intiated with this DragSource. |
DragGestureRecognizer | [createDefaultDragGestureRecognizer](../../../java/awt/dnd/DragSource.html#createDefaultDragGestureRecognizer%28java.awt.Component, int, java.awt.dnd.DragGestureListener%29)(Component c, int actions,DragGestureListener dgl) Creates a new DragGestureRecognizer that implements the default abstract subclass of DragGestureRecognizer for this DragSource, and sets the specified Component and DragGestureListener on the newly created object. |
<T extends DragGestureRecognizer> T | [createDragGestureRecognizer](../../../java/awt/dnd/DragSource.html#createDragGestureRecognizer%28java.lang.Class, java.awt.Component, int, java.awt.dnd.DragGestureListener%29)(Class recognizerAbstractClass,Component c, int actions,DragGestureListener dgl) Creates a new DragGestureRecognizer that implements the specified abstract subclass of DragGestureRecognizer, and sets the specified Component and DragGestureListener on the newly created object. |
protected DragSourceContext | [createDragSourceContext](../../../java/awt/dnd/DragSource.html#createDragSourceContext%28java.awt.dnd.peer.DragSourceContextPeer, java.awt.dnd.DragGestureEvent, java.awt.Cursor, java.awt.Image, java.awt.Point, java.awt.datatransfer.Transferable, java.awt.dnd.DragSourceListener%29)(java.awt.dnd.peer.DragSourceContextPeer dscp,DragGestureEvent dgl,Cursor dragCursor,Image dragImage,Point imageOffset,Transferable t,DragSourceListener dsl) Creates the DragSourceContext to handle this drag. |
static DragSource | getDefaultDragSource() Gets the DragSource object associated with the underlying platform. |
DragSourceListener[] | getDragSourceListeners() Gets all the DragSourceListeners registered with this DragSource. |
DragSourceMotionListener[] | getDragSourceMotionListeners() Gets all of the DragSourceMotionListeners registered with this DragSource. |
static int | getDragThreshold() Returns the drag gesture motion threshold. |
FlavorMap | getFlavorMap() This method returns the FlavorMap for this DragSource. |
<T extends EventListener> T[] | getListeners(Class listenerType) Gets all the objects currently registered as_Foo_Listeners upon this DragSource. |
static boolean | isDragImageSupported() Reports whether or not drag Image support is available on the underlying platform. |
void | removeDragSourceListener(DragSourceListener dsl) Removes the specified DragSourceListener from thisDragSource. |
void | removeDragSourceMotionListener(DragSourceMotionListener dsml) Removes the specified DragSourceMotionListener from thisDragSource. |
void | [startDrag](../../../java/awt/dnd/DragSource.html#startDrag%28java.awt.dnd.DragGestureEvent, java.awt.Cursor, java.awt.Image, java.awt.Point, java.awt.datatransfer.Transferable, java.awt.dnd.DragSourceListener%29)(DragGestureEvent trigger,Cursor dragCursor,Image dragImage,Point dragOffset,Transferable transferable,DragSourceListener dsl) Start a drag, given the DragGestureEvent that initiated the drag, the initial Cursor to use, the Image to drag, the offset of the Image origin from the hotspot of the Cursor at the instant of the trigger, the subject data of the drag, and the DragSourceListener. |
void | [startDrag](../../../java/awt/dnd/DragSource.html#startDrag%28java.awt.dnd.DragGestureEvent, java.awt.Cursor, java.awt.Image, java.awt.Point, java.awt.datatransfer.Transferable, java.awt.dnd.DragSourceListener, java.awt.datatransfer.FlavorMap%29)(DragGestureEvent trigger,Cursor dragCursor,Image dragImage,Point imageOffset,Transferable transferable,DragSourceListener dsl,FlavorMap flavorMap) Start a drag, given the DragGestureEvent that initiated the drag, the initial Cursor to use, the Image to drag, the offset of the Image origin from the hotspot of the Cursor at the instant of the trigger, the Transferable subject data of the drag, the DragSourceListener, and the FlavorMap. |
void | [startDrag](../../../java/awt/dnd/DragSource.html#startDrag%28java.awt.dnd.DragGestureEvent, java.awt.Cursor, java.awt.datatransfer.Transferable, java.awt.dnd.DragSourceListener%29)(DragGestureEvent trigger,Cursor dragCursor,Transferable transferable,DragSourceListener dsl) Start a drag, given the DragGestureEvent that initiated the drag, the initial Cursor to use, the Transferable subject data of the drag, and the DragSourceListener. |
void | [startDrag](../../../java/awt/dnd/DragSource.html#startDrag%28java.awt.dnd.DragGestureEvent, java.awt.Cursor, java.awt.datatransfer.Transferable, java.awt.dnd.DragSourceListener, java.awt.datatransfer.FlavorMap%29)(DragGestureEvent trigger,Cursor dragCursor,Transferable transferable,DragSourceListener dsl,FlavorMap flavorMap) Start a drag, given the DragGestureEvent that initiated the drag, the initial Cursor to use, the Transferable subject data of the drag, the DragSourceListener, and the FlavorMap. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, [wait](../../../java/lang/Object.html#wait%28long, int%29) |
Field Detail |
---|
DefaultCopyDrop
public static final Cursor DefaultCopyDrop
The default Cursor
to use with a copy operation indicating that a drop is currently allowed. null
ifGraphicsEnvironment.isHeadless()
returns true
.
See Also:
GraphicsEnvironment.isHeadless()
DefaultMoveDrop
public static final Cursor DefaultMoveDrop
The default Cursor
to use with a move operation indicating that a drop is currently allowed. null
ifGraphicsEnvironment.isHeadless()
returns true
.
See Also:
GraphicsEnvironment.isHeadless()
DefaultLinkDrop
public static final Cursor DefaultLinkDrop
The default Cursor
to use with a link operation indicating that a drop is currently allowed. null
ifGraphicsEnvironment.isHeadless()
returns true
.
See Also:
GraphicsEnvironment.isHeadless()
DefaultCopyNoDrop
public static final Cursor DefaultCopyNoDrop
The default Cursor
to use with a copy operation indicating that a drop is currently not allowed. null
ifGraphicsEnvironment.isHeadless()
returns true
.
See Also:
GraphicsEnvironment.isHeadless()
DefaultMoveNoDrop
public static final Cursor DefaultMoveNoDrop
The default Cursor
to use with a move operation indicating that a drop is currently not allowed. null
ifGraphicsEnvironment.isHeadless()
returns true
.
See Also:
GraphicsEnvironment.isHeadless()
DefaultLinkNoDrop
public static final Cursor DefaultLinkNoDrop
The default Cursor
to use with a link operation indicating that a drop is currently not allowed. null
ifGraphicsEnvironment.isHeadless()
returns true
.
See Also:
GraphicsEnvironment.isHeadless()
Constructor Detail |
---|
DragSource
public DragSource() throws HeadlessException
Creates a new DragSource
.
Throws:
[HeadlessException](../../../java/awt/HeadlessException.html "class in java.awt")
- if GraphicsEnvironment.isHeadless() returns true
See Also:
GraphicsEnvironment.isHeadless()
Method Detail |
---|
getDefaultDragSource
public static DragSource getDefaultDragSource()
Gets the DragSource
object associated with the underlying platform.
Returns:
the platform DragSource
Throws:
[HeadlessException](../../../java/awt/HeadlessException.html "class in java.awt")
- if GraphicsEnvironment.isHeadless() returns true
See Also:
GraphicsEnvironment.isHeadless()
isDragImageSupported
public static boolean isDragImageSupported()
Reports whether or not drag Image
support is available on the underlying platform.
Returns:
if the Drag Image support is available on this platform
startDrag
public void startDrag(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point imageOffset, Transferable transferable, DragSourceListener dsl, FlavorMap flavorMap) throws InvalidDnDOperationException
Start a drag, given the DragGestureEvent
that initiated the drag, the initial Cursor
to use, the Image
to drag, the offset of the Image
origin from the hotspot of the Cursor
at the instant of the trigger, the Transferable
subject data of the drag, the DragSourceListener
, and the FlavorMap
.
Parameters:
trigger
- the DragGestureEvent
that initiated the drag
dragCursor
- the initial Cursor
or null
for defaults
dragImage
- the image to drag or null,
imageOffset
- the offset of the Image
origin from the hotspot of the Cursor
at the instant of the trigger
transferable
- the subject data of the drag
dsl
- the DragSourceListener
flavorMap
- the FlavorMap
to use, or null
Throws:
`java.awt.dnd.InvalidDnDOperationException`
- if the Drag and Drop system is unable to initiate a drag operation, or if the user attempts to start a drag while an existing drag operation is still executing
[InvalidDnDOperationException](../../../java/awt/dnd/InvalidDnDOperationException.html "class in java.awt.dnd")
startDrag
public void startDrag(DragGestureEvent trigger, Cursor dragCursor, Transferable transferable, DragSourceListener dsl, FlavorMap flavorMap) throws InvalidDnDOperationException
Start a drag, given the DragGestureEvent
that initiated the drag, the initial Cursor
to use, the Transferable
subject data of the drag, the DragSourceListener
, and the FlavorMap
.
Parameters:
trigger
- the DragGestureEvent
that initiated the drag
dragCursor
- the initial Cursor
or null
for defaults
transferable
- the subject data of the drag
dsl
- the DragSourceListener
flavorMap
- the FlavorMap
to use or null
Throws:
`java.awt.dnd.InvalidDnDOperationException`
- if the Drag and Drop system is unable to initiate a drag operation, or if the user attempts to start a drag while an existing drag operation is still executing
[InvalidDnDOperationException](../../../java/awt/dnd/InvalidDnDOperationException.html "class in java.awt.dnd")
startDrag
public void startDrag(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point dragOffset, Transferable transferable, DragSourceListener dsl) throws InvalidDnDOperationException
Start a drag, given the DragGestureEvent
that initiated the drag, the initial Cursor
to use, the Image
to drag, the offset of the Image
origin from the hotspot of the Cursor
at the instant of the trigger, the subject data of the drag, and the DragSourceListener
.
Parameters:
trigger
- the DragGestureEvent
that initiated the drag
dragCursor
- the initial Cursor
or null
for defaults
dragImage
- the Image
to drag or null
dragOffset
- the offset of the Image
origin from the hotspot of the Cursor
at the instant of the trigger
transferable
- the subject data of the drag
dsl
- the DragSourceListener
Throws:
`java.awt.dnd.InvalidDnDOperationException`
- if the Drag and Drop system is unable to initiate a drag operation, or if the user attempts to start a drag while an existing drag operation is still executing
[InvalidDnDOperationException](../../../java/awt/dnd/InvalidDnDOperationException.html "class in java.awt.dnd")
startDrag
public void startDrag(DragGestureEvent trigger, Cursor dragCursor, Transferable transferable, DragSourceListener dsl) throws InvalidDnDOperationException
Start a drag, given the DragGestureEvent
that initiated the drag, the initial Cursor
to use, the Transferable
subject data of the drag, and the DragSourceListener
.
Parameters:
trigger
- the DragGestureEvent
that initiated the drag
dragCursor
- the initial Cursor
or null
for defaults
transferable
- the subject data of the drag
dsl
- the DragSourceListener
Throws:
`java.awt.dnd.InvalidDnDOperationException`
- if the Drag and Drop system is unable to initiate a drag operation, or if the user attempts to start a drag while an existing drag operation is still executing
[InvalidDnDOperationException](../../../java/awt/dnd/InvalidDnDOperationException.html "class in java.awt.dnd")
createDragSourceContext
protected DragSourceContext createDragSourceContext(java.awt.dnd.peer.DragSourceContextPeer dscp, DragGestureEvent dgl, Cursor dragCursor, Image dragImage, Point imageOffset, Transferable t, DragSourceListener dsl)
Creates the DragSourceContext
to handle this drag.
To incorporate a new DragSourceContext
subclass, subclass DragSource
and override this method.
If dragImage
is null
, no image is used to represent the drag over feedback for this drag operation, but NullPointerException
is not thrown.
If dsl
is null
, no drag source listener is registered with the created DragSourceContext
, but NullPointerException
is not thrown.
If dragCursor
is null
, the default drag cursors are used for this drag operation. NullPointerException
is not thrown.
Parameters:
dscp
- The DragSourceContextPeer
for this drag
dgl
- The DragGestureEvent
that triggered the drag
dragCursor
- The initial Cursor
to display
dragImage
- The Image
to drag or null
imageOffset
- The offset of the Image
origin from the hotspot of the cursor at the instant of the trigger
t
- The subject data of the drag
dsl
- The DragSourceListener
Returns:
the DragSourceContext
Throws:
[NullPointerException](../../../java/lang/NullPointerException.html "class in java.lang")
- if dscp
is null
[NullPointerException](../../../java/lang/NullPointerException.html "class in java.lang")
- if dgl
is null
[NullPointerException](../../../java/lang/NullPointerException.html "class in java.lang")
- if dragImage
is not null
and imageOffset
is null
[NullPointerException](../../../java/lang/NullPointerException.html "class in java.lang")
- if t
is null
[IllegalArgumentException](../../../java/lang/IllegalArgumentException.html "class in java.lang")
- if the Component
associated with the trigger event is null
.
[IllegalArgumentException](../../../java/lang/IllegalArgumentException.html "class in java.lang")
- if the DragSource
for the trigger event is null
.
[IllegalArgumentException](../../../java/lang/IllegalArgumentException.html "class in java.lang")
- if the drag action for the trigger event is DnDConstants.ACTION_NONE
.
[IllegalArgumentException](../../../java/lang/IllegalArgumentException.html "class in java.lang")
- if the source actions for theDragGestureRecognizer
associated with the trigger event are equal to DnDConstants.ACTION_NONE
.
getFlavorMap
public FlavorMap getFlavorMap()
This method returns the FlavorMap
for this DragSource
.
Returns:
the FlavorMap
for this DragSource
createDragGestureRecognizer
public <T extends DragGestureRecognizer> T createDragGestureRecognizer(Class recognizerAbstractClass, Component c, int actions, DragGestureListener dgl)
Creates a new DragGestureRecognizer
that implements the specified abstract subclass of DragGestureRecognizer
, and sets the specified Component
and DragGestureListener
on the newly created object.
Parameters:
recognizerAbstractClass
- the requested abstract type
actions
- the permitted source drag actions
c
- the Component
target
dgl
- the DragGestureListener
to notify
Returns:
the new DragGestureRecognizer
or null
if the Toolkit.createDragGestureRecognizer
method has no implementation available for the requested DragGestureRecognizer
subclass and returns null
createDefaultDragGestureRecognizer
public DragGestureRecognizer createDefaultDragGestureRecognizer(Component c, int actions, DragGestureListener dgl)
Creates a new DragGestureRecognizer
that implements the default abstract subclass of DragGestureRecognizer
for this DragSource
, and sets the specified Component
and DragGestureListener
on the newly created object. For this DragSource
the default is MouseDragGestureRecognizer
.
Parameters:
c
- the Component
target for the recognizer
actions
- the permitted source actions
dgl
- the DragGestureListener
to notify
Returns:
the new DragGestureRecognizer
or null
if the Toolkit.createDragGestureRecognizer
method has no implementation available for the requested DragGestureRecognizer
subclass and returns null
addDragSourceListener
public void addDragSourceListener(DragSourceListener dsl)
Adds the specified DragSourceListener
to thisDragSource
to receive drag source events during drag operations intiated with this DragSource
. If a null
listener is specified, no action is taken and no exception is thrown.
Parameters:
dsl
- the DragSourceListener
to add
Since:
1.4
See Also:
removeDragSourceListener(java.awt.dnd.DragSourceListener), getDragSourceListeners()
removeDragSourceListener
public void removeDragSourceListener(DragSourceListener dsl)
Removes the specified DragSourceListener
from thisDragSource
. If a null
listener is specified, no action is taken and no exception is thrown. If the listener specified by the argument was not previously added to this DragSource
, no action is taken and no exception is thrown.
Parameters:
dsl
- the DragSourceListener
to remove
Since:
1.4
See Also:
addDragSourceListener(java.awt.dnd.DragSourceListener), getDragSourceListeners()
getDragSourceListeners
public DragSourceListener[] getDragSourceListeners()
Gets all the DragSourceListener
s registered with this DragSource
.
Returns:
all of this DragSource
'sDragSourceListener
s or an empty array if no such listeners are currently registered
Since:
1.4
See Also:
addDragSourceListener(java.awt.dnd.DragSourceListener), removeDragSourceListener(java.awt.dnd.DragSourceListener)
addDragSourceMotionListener
public void addDragSourceMotionListener(DragSourceMotionListener dsml)
Adds the specified DragSourceMotionListener
to thisDragSource
to receive drag motion events during drag operations intiated with this DragSource
. If a null
listener is specified, no action is taken and no exception is thrown.
Parameters:
dsml
- the DragSourceMotionListener
to add
Since:
1.4
See Also:
removeDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener), getDragSourceMotionListeners()
removeDragSourceMotionListener
public void removeDragSourceMotionListener(DragSourceMotionListener dsml)
Removes the specified DragSourceMotionListener
from thisDragSource
. If a null
listener is specified, no action is taken and no exception is thrown. If the listener specified by the argument was not previously added to this DragSource
, no action is taken and no exception is thrown.
Parameters:
dsml
- the DragSourceMotionListener
to remove
Since:
1.4
See Also:
addDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener), getDragSourceMotionListeners()
getDragSourceMotionListeners
public DragSourceMotionListener[] getDragSourceMotionListeners()
Gets all of the DragSourceMotionListener
s registered with this DragSource
.
Returns:
all of this DragSource
'sDragSourceMotionListener
s or an empty array if no such listeners are currently registered
Since:
1.4
See Also:
addDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener), removeDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener)
getListeners
public <T extends EventListener> T[] getListeners(Class listenerType)
Gets all the objects currently registered as_Foo_Listener
s upon this DragSource
._Foo_Listener
s are registered using theadd_Foo_Listener
method.
Parameters:
listenerType
- the type of listeners requested; this parameter should specify an interface that descends fromjava.util.EventListener
Returns:
an array of all objects registered as_Foo_Listener
s on thisDragSource
, or an empty array if no such listeners have been added
Throws:
`ClassCastException`
- if listenerType
doesn't specify a class or interface that implementsjava.util.EventListener
Since:
1.4
See Also:
getDragSourceListeners(), getDragSourceMotionListeners()
getDragThreshold
public static int getDragThreshold()
Returns the drag gesture motion threshold. The drag gesture motion threshold defines the recommended behavior for MouseDragGestureRecognizers.
If the system property awt.dnd.drag.threshold
is set to a positive integer, this method returns the value of the system property; otherwise if a pertinent desktop property is available and supported by the implementation of the Java platform, this method returns the value of that property; otherwise this method returns some default value. The pertinent desktop property can be queried usingjava.awt.Toolkit.getDesktopProperty("DnD.gestureMotionThreshold")
.
Returns:
the drag gesture motion threshold
Since:
1.5
See Also:
Submit a bug or feature
For further API reference and developer documentation, see Java SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2015, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.
Scripting on this page tracks web page traffic, but does not change the content in any way.