DragSourceListener, DragSourceMotionListener, Serializable, EventListener
public class DragSourceContext extends Object implements DragSourceListener, DragSourceMotionListener, Serializable
DragSourceContext class is responsible for managing the initiator side of the Drag and Drop protocol. In particular, it is responsible for managing drag event notifications to the DragSourceListeners and DragSourceMotionListeners, and providing the Transferable representing the source data for the drag operation.  Note that the DragSourceContext itself implements the DragSourceListener and DragSourceMotionListener interfaces. This is to allow the platform peer (the DragSourceContextPeer instance) created by the DragSource to notify the DragSourceContext of state changes in the ongoing operation. This allows the DragSourceContext object to interpose itself between the platform and the listeners provided by the initiator of the drag operation. 
  By default, DragSourceContext sets the cursor as appropriate for the current state of the drag and drop operation. For example, if the user has chosen the move action, and the pointer is over a target that accepts the move action, the default move cursor is shown. When the pointer is over an area that does not accept the transfer, the default "no drop" cursor is shown. 
 This default handling mechanism is disabled when a custom cursor is set by the setCursor(java.awt.Cursor) method. When the default handling is disabled, it becomes the responsibility of the developer to keep the cursor up to date, by listening to the DragSource events and calling the setCursor() method. Alternatively, you can provide custom cursor behavior by providing custom implementations of the DragSource and the DragSourceContext classes.
| Modifier and Type | Field | Description | 
|---|---|---|
| protected static final int | CHANGED | An  intused by updateCurrentCursor() indicating that the user operation has changed. | 
| protected static final int | DEFAULT | An  intused by updateCurrentCursor() indicating that theCursorshould change to the default (no drop)Cursor. | 
| protected static final int | ENTER | An  intused by updateCurrentCursor() indicating that theCursorhas entered aDropTarget. | 
| protected static final int | OVER | An  intused by updateCurrentCursor() indicating that theCursoris over aDropTarget. | 
| Constructor | Description | 
|---|---|
| DragSourceContext | Called from  DragSource, this constructor creates a newDragSourceContextgiven theDragSourceContextPeerfor this Drag, theDragGestureEventthat triggered the Drag, the initialCursorto use for the Drag, an (optional)Imageto display while the Drag is taking place, the offset of theImageorigin from the hotspot at the instant of the triggering event, theTransferablesubject data, and theDragSourceListenerto use during the Drag and Drop operation. | 
| Modifier and Type | Method | Description | 
|---|---|---|
| void | addDragSourceListener | Add a  DragSourceListenerto thisDragSourceContextif one has not already been added. | 
| void | dragDropEnd | Calls  dragDropEndon theDragSourceListeners registered with thisDragSourceContextand with the associatedDragSource, and passes them the specifiedDragSourceDropEvent. | 
| void | dragEnter | Calls  dragEnteron theDragSourceListeners registered with thisDragSourceContextand with the associatedDragSource, and passes them the specifiedDragSourceDragEvent. | 
| void | dragExit | Calls  dragExiton theDragSourceListeners registered with thisDragSourceContextand with the associatedDragSource, and passes them the specifiedDragSourceEvent. | 
| void | dragMouseMoved | Calls  dragMouseMovedon theDragSourceMotionListeners registered with theDragSourceassociated with thisDragSourceContext, and them passes the specifiedDragSourceDragEvent. | 
| void | dragOver | Calls  dragOveron theDragSourceListeners registered with thisDragSourceContextand with the associatedDragSource, and passes them the specifiedDragSourceDragEvent. | 
| void | dropActionChanged | Calls  dropActionChangedon theDragSourceListeners registered with thisDragSourceContextand with the associatedDragSource, and passes them the specifiedDragSourceDragEvent. | 
| Component | getComponent() | Returns the  Componentassociated with thisDragSourceContext. | 
| Cursor | getCursor() | Returns the current custom drag  Cursor. | 
| DragSource | getDragSource() | Returns the  DragSourcethat instantiated thisDragSourceContext. | 
| int | getSourceActions() | Returns a bitwise mask of  DnDConstantsthat represent the set of drop actions supported by the drag source for the drag operation associated with thisDragSourceContext. | 
| Transferable | getTransferable() | Returns the  Transferableassociated with thisDragSourceContext. | 
| DragGestureEvent | getTrigger() | Returns the  DragGestureEventthat initially triggered the drag. | 
| void | removeDragSourceListener | Removes the specified  DragSourceListenerfrom thisDragSourceContext. | 
| void | setCursor | Sets the custom cursor for this drag operation to the specified  Cursor. | 
| void | transferablesFlavorsChanged() | Notifies the peer that the  Transferable'sDataFlavors have changed. | 
| protected void | updateCurrentCursor | If the default drag cursor behavior is active, this method sets the default drag cursor for the specified actions supported by the drag source, the drop target action, and status, otherwise this method does nothing. | 
protected static final int DEFAULT
int used by updateCurrentCursor() indicating that the Cursor should change to the default (no drop) Cursor.protected static final int ENTER
int used by updateCurrentCursor() indicating that the Cursor has entered a DropTarget.protected static final int OVER
int used by updateCurrentCursor() indicating that the Cursor is over a DropTarget.protected static final int CHANGED
int used by updateCurrentCursor() indicating that the user operation has changed.public DragSourceContext(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point offset, Transferable t, DragSourceListener dsl)
DragSource, this constructor creates a new DragSourceContext given the DragSourceContextPeer for this Drag, the DragGestureEvent that triggered the Drag, the initial Cursor to use for the Drag, an (optional) Image to display while the Drag is taking place, the offset of the Image origin from the hotspot at the instant of the triggering event, the Transferable subject data, and the DragSourceListener to use during the Drag and Drop operation. DragSourceContextPeer is null NullPointerException is thrown. DragGestureEvent is null NullPointerException is thrown. Cursor is null no exception is thrown and the default drag cursor behavior is activated for this drag operation. Image is null no exception is thrown. Image is not null and the offset is null NullPointerException is thrown. Transferable is null NullPointerException is thrown. DragSourceListener is null no exception is thrown.trigger - the triggering eventdragCursor - the initial Cursor for this drag operation or null for the default cursor handling; see class level documentation for more details on the cursor handling mechanism during drag and dropdragImage - the Image to drag (or null)offset - the offset of the image origin from the hotspot at the instant of the triggering eventt - the Transferable
dsl - the DragSourceListener
IllegalArgumentException - if the Component associated with the trigger event is null.IllegalArgumentException - if the DragSource for the trigger event is null.IllegalArgumentException - if the drag action for the trigger event is DnDConstants.ACTION_NONE.IllegalArgumentException - if the source actions for the DragGestureRecognizer associated with the trigger event are equal to DnDConstants.ACTION_NONE.NullPointerException - if dscp, trigger, or t are null, or if dragImage is non-null and offset is nullpublic DragSource getDragSource()
DragSource that instantiated this DragSourceContext.DragSource that instantiated this DragSourceContext
public Component getComponent()
Component associated with this DragSourceContext.Component that started the dragpublic DragGestureEvent getTrigger()
DragGestureEvent that initially triggered the drag.public int getSourceActions()
DnDConstants that represent the set of drop actions supported by the drag source for the drag operation associated with this DragSourceContext.public void setCursor(Cursor c)
Cursor. If the specified Cursor is null, the default drag cursor behavior is activated for this drag operation, otherwise it is deactivated.c - the initial Cursor for this drag operation, or null for the default cursor handling; see class level documentation for more details on the cursor handling during drag and droppublic Cursor getCursor()
Cursor.Cursor, if it was set otherwise returns null.public void addDragSourceListener(DragSourceListener dsl) throws TooManyListenersException
DragSourceListener to this DragSourceContext if one has not already been added. If a DragSourceListener already exists, this method throws a TooManyListenersException.dsl - the DragSourceListener to add. Note that while null is not prohibited, it is not acceptable as a parameter.TooManyListenersException - if a DragSourceListener has already been addedpublic void removeDragSourceListener(DragSourceListener dsl)
DragSourceListener from this DragSourceContext.dsl - the DragSourceListener to remove; note that while null is not prohibited, it is not acceptable as a parameterpublic void transferablesFlavorsChanged()
Transferable's DataFlavors have changed.public void dragEnter(DragSourceDragEvent dsde)
dragEnter on the DragSourceListeners registered with this DragSourceContext and with the associated DragSource, and passes them the specified DragSourceDragEvent.dragEnter in interface DragSourceListener
dsde - the DragSourceDragEvent
public void dragOver(DragSourceDragEvent dsde)
dragOver on the DragSourceListeners registered with this DragSourceContext and with the associated DragSource, and passes them the specified DragSourceDragEvent.dragOver in interface DragSourceListener
dsde - the DragSourceDragEvent
public void dragExit(DragSourceEvent dse)
dragExit on the DragSourceListeners registered with this DragSourceContext and with the associated DragSource, and passes them the specified DragSourceEvent.dragExit in interface DragSourceListener
dse - the DragSourceEvent
public void dropActionChanged(DragSourceDragEvent dsde)
dropActionChanged on the DragSourceListeners registered with this DragSourceContext and with the associated DragSource, and passes them the specified DragSourceDragEvent.dropActionChanged in interface DragSourceListener
dsde - the DragSourceDragEvent
public void dragDropEnd(DragSourceDropEvent dsde)
dragDropEnd on the DragSourceListeners registered with this DragSourceContext and with the associated DragSource, and passes them the specified DragSourceDropEvent.dragDropEnd in interface DragSourceListener
dsde - the DragSourceDropEvent
public void dragMouseMoved(DragSourceDragEvent dsde)
dragMouseMoved on the DragSourceMotionListeners registered with the DragSource associated with this DragSourceContext, and them passes the specified DragSourceDragEvent.dragMouseMoved in interface DragSourceMotionListener
dsde - the DragSourceDragEvent
public Transferable getTransferable()
Transferable associated with this DragSourceContext.Transferable
protected void updateCurrentCursor(int sourceAct, int targetAct, int status)
sourceAct - the actions supported by the drag sourcetargetAct - the drop target actionstatus - one of the fields DEFAULT, ENTER, OVER, CHANGED
    © 1993, 2023, 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.
    https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/java/awt/dnd/DragSourceContext.html