Spec-Zone.ru › OpenJDK 24

Класс DragSource

java.lang.Object
java.awt.dnd.DragSource
Все реализованные интерфейсы:
Serializable
public class DragSource extends Object implements Serializable
Сущность, ответственная за инициирование операции перетаскивания и сброса, может быть использована в нескольких сценариях:
  • 1 экземпляр на JVM на протяжении всего жизненного цикла этой JVM.
  • 1 экземпляр на каждый класс потенциального объекта инициирующего перетаскивание (например, TextField). [зависит от реализации]
  • 1 экземпляр на конкретный объект, или прикладной объект, связанный с экземпляром интерфейса перетаскивания в графическом интерфейсе. [зависит от реализации]
  • Другое произвольное соответствие. [зависит от реализации]
После получения объекта DragSource, также необходимо получить объект DragGestureRecognizer, чтобы связать объект DragSource с конкретным объектом Component.

Первоначальная интерпретация жеста пользователя и последующее начало операции перетаскивания являются ответственностью реализующего Component, который обычно реализуется объектом DragGestureRecognizer.

При выполнении жеста перетаскивания, метод startDrag() объекта DragSource вызывается для обработки навигационных жестов пользователя и передачи уведомлений протокола перетаскивания и сброса. Объект DragSource разрешает только одну операцию перетаскивания и сброса в данный момент времени и отклоняет все последующие запросы startDrag() сбрасывая исключение IllegalDnDOperationException до тех пор, пока текущая операция не завершится.

Метод startDrag() вызывает метод createDragSourceContext() для создания соответствующего объекта DragSourceContext и связи объекта DragSourceContextPeer с ним.

Если система перетаскивания и сброса по какой-либо причине не может инициировать операцию перетаскивания, метод startDrag() генерирует исключение java.awt.dnd.InvalidDnDOperationException, чтобы сигнализировать об этом. Как правило, это исключение выбрасывается, когда система платформы по какой-либо причине не может инициировать перетаскивание, или когда заданные параметры являются неверными.

Обратите внимание, что во время перетаскивания набор операций, представленных источником в начале операции перетаскивания, не может измениться до ее завершения. Операция(и) являются постоянными в течение всего периода операции относительно DragSource.

С тех пор:
1.2
См. также:
  • Сериализованная форма

Краткое описание полей

Модификатор и тип Поле Описание
static final Cursor DefaultCopyDrop
По умолчанию Cursor для операции копирования, указывающее, что сброс разрешен.
static final Cursor DefaultCopyNoDrop
По умолчанию Cursor для операции копирования, указывающее, что сброс не разрешен.
static final Cursor DefaultLinkDrop
По умолчанию Cursor для операции связи, указывающее, что сброс разрешен.
static final Cursor DefaultLinkNoDrop
По умолчанию Cursor для операции связи, указывающее, что сброс не разрешен.
static final Cursor DefaultMoveDrop
По умолчанию Cursor для операции перемещения, указывающее, что сброс разрешен.
static final Cursor DefaultMoveNoDrop
По умолчанию Cursor для операции перемещения, указывающее, что сброс не разрешен.

Краткое описание конструкторов

Конструктор Описание
DragSource()
Создает новый объект DragSource.

Краткое описание методов

Модификатор и тип Метод Описание
void addDragSourceListener(DragSourceListener dsl)
Добавляет указанный DragSourceListener к этому объекту DragSource, чтобы получать события источника перетаскивания во время операций перетаскивания, инициированных этим объектом DragSource.
void addDragSourceMotionListener(DragSourceMotionListener dsml)
Добавляет указанный DragSourceMotionListener к этому объекту DragSource, чтобы получать события перемещения перетаскивания во время операций перетаскивания, инициированных этим объектом DragSource.
DragGestureRecognizer createDefaultDragGestureRecognizer(Component c, int actions, DragGestureListener dgl)
Создает новый объект DragGestureRecognizer, который реализует стандартный абстрактный подкласс DragGestureRecognizer для этого объекта DragSource, и устанавливает указанный Component и DragGestureListener на созданный объект.
<T extends DragGestureRecognizer>
T
createDragGestureRecognizer(Class<T> recognizerAbstractClass, Component c, int actions, DragGestureListener dgl)
Создает новый объект DragGestureRecognizer, который реализует указанный абстрактный подкласс DragGestureRecognizer, и устанавливает указанный Component и DragGestureListener на созданный объект.
protected DragSourceContext createDragSourceContext(DragGestureEvent dgl, Cursor dragCursor, Image dragImage, Point imageOffset, Transferable t, DragSourceListener dsl)
Создает объект DragSourceContext для обработки текущей операции перетаскивания.
static DragSource getDefaultDragSource()
Возвращает объект DragSource, связанный с базовой платформой.
DragSourceListener[] getDragSourceListeners()
Возвращает все зарегистрированные DragSourceListener с этим объектом DragSource.
DragSourceMotionListener[] getDragSourceMotionListeners()
Возвращает все зарегистрированные DragSourceMotionListener с этим объектом DragSource.
static int getDragThreshold()
Возвращает порог перемещения жеста перетаскивания.
FlavorMap getFlavorMap()
Этот метод возвращает FlavorMap для этого объекта DragSource.
<T extends EventListener>
T[]
getListeners(Class<T> listenerType)
Возвращает все объекты, зарегистрированные в качестве FooListener для этого объекта DragSource.
static boolean isDragImageSupported()
Указывает, поддерживается ли перетаскивание Image на базовой платформе.
void removeDragSourceListener(DragSourceListener dsl)
Удаляет указанный DragSourceListener из этого объекта DragSource.
void removeDragSourceMotionListener(DragSourceMotionListener dsml)
Удаляет указанный DragSourceMotionListener из этого объекта DragSource.
void startDrag(DragGestureEvent trigger, Cursor dragCursor, Transferable transferable, DragSourceListener dsl)
Инициирует перетаскивание, используя источник перетаскивания, начальные данные, объект перетаскивания и тип операции.
void startDrag(DragGestureEvent trigger, Cursor dragCursor, Transferable transferable, DragSourceListener dsl, FlavorMap flavorMap)
Инициирует перетаскивание, используя источник перетаскивания, начальные данные, объект перетаскивания, дополнительное описание и тип операции.
void startDrag(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point dragOffset, Transferable transferable, DragSourceListener dsl)
Инициирует перетаскивание, используя источник перетаскивания, начальные данные, объект перетаскивания, смещение источника и данные перетаскивания.
void startDrag(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point imageOffset, Transferable transferable, DragSourceListener dsl, FlavorMap flavorMap)
Инициирует перетаскивание, используя источник перетаскивания, начальные данные, объект перетаскивания, смещение источника, дополнительные данные и тип операции.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Краткое описание полей

DefaultCopyDrop

public static final Cursor DefaultCopyDrop
Значение по умолчанию Cursor для использования с операцией копирования, указывающее, что в данный момент разрешено перетаскивание. null если GraphicsEnvironment.isHeadless() возвращает true.
См. также:
  • GraphicsEnvironment.isHeadless()

DefaultMoveDrop

public static final Cursor DefaultMoveDrop
Значение по умолчанию Cursor для использования с операцией перемещения, указывающее, что в данный момент разрешено перетаскивание. null если GraphicsEnvironment.isHeadless() возвращает true.
См. также:
  • GraphicsEnvironment.isHeadless()

DefaultLinkDrop

public static final Cursor DefaultLinkDrop
Значение по умолчанию Cursor для использования с операцией создания ссылки, указывающее, что в данный момент разрешено перетаскивание. null если GraphicsEnvironment.isHeadless() возвращает true.
См. также:
  • GraphicsEnvironment.isHeadless()

DefaultCopyNoDrop

public static final Cursor DefaultCopyNoDrop
Значение по умолчанию Cursor для использования с операцией копирования, указывающее, что в данный момент перетаскивание запрещено. null если GraphicsEnvironment.isHeadless() возвращает true.
См. также:
  • GraphicsEnvironment.isHeadless()

DefaultMoveNoDrop

public static final Cursor DefaultMoveNoDrop
Значение по умолчанию Cursor для использования с операцией перемещения, указывающее, что в данный момент перетаскивание запрещено. null если GraphicsEnvironment.isHeadless() возвращает true.
См. также:
  • GraphicsEnvironment.isHeadless()

DefaultLinkNoDrop

public static final Cursor DefaultLinkNoDrop
Значение по умолчанию Cursor для использования с операцией создания ссылки, указывающее, что в данный момент перетаскивание запрещено. null если GraphicsEnvironment.isHeadless() возвращает true.
См. также:
  • GraphicsEnvironment.isHeadless()

Подробное описание конструкторов

DragSource

public DragSource() throws HeadlessException
Создает новый DragSource.
Исключения:
HeadlessException - если GraphicsEnvironment.isHeadless() возвращает true
См. также:
  • GraphicsEnvironment.isHeadless()

Подробное описание методов

getDefaultDragSource

public static DragSource getDefaultDragSource()
Получает объект DragSource, связанный с базовой платформой.
Возвращает:
объект DragSource платформы
Исключения:
HeadlessException - если GraphicsEnvironment.isHeadless() возвращает true
См. также:
  • GraphicsEnvironment.isHeadless()

isDragImageSupported

public static boolean isDragImageSupported()
Сообщает, доступна ли поддержка перетаскивания Image на базовой платформе.
Возвращает:
true если поддержка Drag Image доступна на этой платформе, в противном случае false

startDrag

public void startDrag(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point imageOffset, Transferable transferable, DragSourceListener dsl, FlavorMap flavorMap) throws InvalidDnDOperationException
Начать перетаскивание, учитывая DragGestureEvent, инициировавший перетаскивание, начальный Cursor для использования, Image для перетаскивания, смещение начала координат Image от точки доступа Cursor в момент срабатывания, данные Transferable, перетаскиваемого объекта, DragSourceListener и FlavorMap.
Параметры:
trigger - DragGestureEvent, инициировавший перетаскивание
dragCursor - начальный Cursor для этой операции перетаскивания или null для обработки курсора по умолчанию; см. DragSourceContext для получения дополнительных сведений о механизме обработки курсора во время перетаскивания
dragImage - изображение для перетаскивания или null
imageOffset - смещение начала координат Image от точки доступа Cursor в момент срабатывания
transferable - данные перетаскиваемого объекта
dsl - DragSourceListener
flavorMap - используемый FlavorMap или null
Исключения:
InvalidDnDOperationException - если система перетаскивания не может инициировать операцию перетаскивания, или если пользователь пытается начать перетаскивание, пока выполняется существующая операция перетаскивания

startDrag

public void startDrag(DragGestureEvent trigger, Cursor dragCursor, Transferable transferable, DragSourceListener dsl, FlavorMap flavorMap) throws InvalidDnDOperationException
Начать перетаскивание, учитывая DragGestureEvent, инициировавший перетаскивание, начальный Cursor для использования, данные Transferable перетаскиваемого объекта, DragSourceListener и FlavorMap.
Параметры:
trigger - DragGestureEvent, инициировавший перетаскивание
dragCursor - начальный Cursor для этой операции перетаскивания или null для обработки курсора по умолчанию; см. DragSourceContext для получения дополнительных сведений о механизме обработки курсора во время перетаскивания
transferable - данные перетаскиваемого объекта
dsl - DragSourceListener
flavorMap - используемый FlavorMap или null
Исключения:
InvalidDnDOperationException - если система перетаскивания не может инициировать операцию перетаскивания, или если пользователь пытается начать перетаскивание, пока выполняется существующая операция перетаскивания

startDrag

public void startDrag(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point dragOffset, Transferable transferable, DragSourceListener dsl) throws InvalidDnDOperationException
Начать перетаскивание, учитывая DragGestureEvent, инициировавший перетаскивание, начальный Cursor для использования, Image для перетаскивания, смещение начала координат Image от точки доступа Cursor в момент срабатывания, данные перетаскиваемого объекта и DragSourceListener.
Параметры:
trigger - DragGestureEvent, инициировавший перетаскивание
dragCursor - начальный Cursor для этой операции перетаскивания или null для обработки курсора по умолчанию; см. DragSourceContext для получения дополнительных сведений о механизме обработки курсора во время перетаскивания
dragImage - Image для перетаскивания или null
dragOffset - смещение начала координат Image от точки доступа Cursor в момент срабатывания
transferable - данные перетаскиваемого объекта
dsl - DragSourceListener
Исключения:
InvalidDnDOperationException - если система перетаскивания не может инициировать операцию перетаскивания, или если пользователь пытается начать перетаскивание, пока выполняется существующая операция перетаскивания

startDrag

public void startDrag(DragGestureEvent trigger, Cursor dragCursor, Transferable transferable, DragSourceListener dsl) throws InvalidDnDOperationException
Начать перетаскивание, учитывая DragGestureEvent, инициировавший перетаскивание, начальный Cursor для использования, данные Transferable перетаскиваемого объекта и DragSourceListener.
Параметры:
trigger - DragGestureEvent, инициировавший перетаскивание
dragCursor - начальный Cursor для этой операции перетаскивания или null для обработки курсора по умолчанию; см. класс DragSourceContext для получения дополнительных сведений о механизме обработки курсора во время перетаскивания
transferable - данные перетаскиваемого объекта
dsl - DragSourceListener
Исключения:
InvalidDnDOperationException - если система перетаскивания не может инициировать операцию перетаскивания, или если пользователь пытается начать перетаскивание, пока выполняется существующая операция перетаскивания

createDragSourceContext

protected DragSourceContext createDragSourceContext(DragGestureEvent dgl, Cursor dragCursor, Image dragImage, Point imageOffset, Transferable t, DragSourceListener dsl)
Создаёт контекст для обработки текущей операции перетаскивания.

Для включения нового подкласса, необходимо создать подкласс DragSource и переопределить этот метод.

Если dragImage равен null, изображение не используется для отображения обратной связи при перетаскивании, но исключение NullPointerException не выбрасывается.

Если dsl равен null, слушатель DragSource не регистрируется с созданным DragSourceContext, но исключение NullPointerException не выбрасывается.

Parameters:
dgl - Событие, которое вызвало перетаскивание
dragCursor - Начальный курсор для операции перетаскивания или null для обработки по умолчанию; см. класс DragSourceContext для получения дополнительной информации о механизме обработки курсора во время перетаскивания
dragImage - Изображение для перетаскивания или null
imageOffset - Смещение начала Image от горячей точки курсора в момент срабатывания
t - Передаваемые данные перетаскивания
dsl - Слушатель перетаскивания
Returns:
созданный контекст перетаскивания
Throws:
NullPointerException - если dscp равно null
NullPointerException - если dgl равно null
NullPointerException - если dragImage не является null и imageOffset равно null
NullPointerException - если t равно null
IllegalArgumentException - если Component, связанный с событием, является null.
IllegalArgumentException - если DragSource для события равен null.
IllegalArgumentException - если действие перетаскивания для события некорректно.
IllegalArgumentException - если действия источника для DragGestureRecognizer совпадают с DnDConstants.ACTION_NONE.

getFlavorMap

public FlavorMap getFlavorMap()
Этот метод возвращает карту типов данных для этого контекста перетаскивания.
Returns:
карта типов данных для этого контекста перетаскивания

createDragGestureRecognizer

public <T extends DragGestureRecognizer> T createDragGestureRecognizer(Class<T> recognizerAbstractClass, Component c, int actions, DragGestureListener dgl)
Создаёт новый распознаватель жестов перетаскивания, реализующий указанный абстрактный подкласс DragGestureRecognizer, и устанавливает заданный Component и DragGestureListener на вновь созданный объект.
Type Parameters:
T - тип распознавателя жестов перетаскивания
Parameters:
recognizerAbstractClass - запрашиваемый абстрактный тип
c - целевой компонент
actions - разрешённые действия перетаскивания источника
dgl - слушатель жестов перетаскивания
Returns:
новый распознаватель жестов перетаскивания или null, если метод Toolkit.createDragGestureRecognizer не имеет реализации для запрошенного подкласса DragGestureRecognizer и возвращает null

createDefaultDragGestureRecognizer

public DragGestureRecognizer createDefaultDragGestureRecognizer(Component c, int actions, DragGestureListener dgl)
Создаёт новый распознаватель жестов перетаскивания, реализующий по умолчанию абстрактный подкласс DragGestureRecognizer для этого DragSource, и устанавливает заданный Component и DragGestureListener на вновь созданный объект. По умолчанию для этого DragSource используется MouseDragGestureRecognizer.
Parameters:
c - целевой компонент для распознавателя
actions - разрешённые действия источника
dgl - слушатель жестов перетаскивания
Returns:
новый распознаватель жестов перетаскивания или null, если метод Toolkit.createDragGestureRecognizer не имеет реализации для запрошенного подкласса DragGestureRecognizer и возвращает null

addDragSourceListener

public void addDragSourceListener(DragSourceListener dsl)
Добавляет указанного слушателя событий перетаскивания в этот контекст перетаскивания, чтобы получать события DragSource во время операций перетаскивания, инициированных этим контекстом. Если слушатель null указан, никаких действий не выполняется, и исключение не выбрасывается.
Parameters:
dsl - слушатель событий перетаскивания
Since:
1.4
See Also:
  • removeDragSourceListener(java.awt.dnd.DragSourceListener)
  • getDragSourceListeners()

removeDragSourceListener

public void removeDragSourceListener(DragSourceListener dsl)
Удаляет указанного слушателя событий перетаскивания из этого контекста перетаскивания. Если слушатель null указан, никаких действий не выполняется, и исключение не выбрасывается. Если слушатель, заданный аргументом, ранее не был добавлен в этот контекст, никаких действий не выполняется, и исключение не выбрасывается.
Parameters:
dsl - слушатель событий перетаскивания для удаления
Since:
1.4
See Also:
  • addDragSourceListener(java.awt.dnd.DragSourceListener)
  • getDragSourceListeners()

getDragSourceListeners

public DragSourceListener[] getDragSourceListeners()
Возвращает всех зарегистрированных слушателей событий перетаскивания для этого контекста.
Returns:
все слушатели событий перетаскивания или пустой массив, если слушатели не зарегистрированы
Since:
1.4
See Also:
  • addDragSourceListener(java.awt.dnd.DragSourceListener)
  • removeDragSourceListener(java.awt.dnd.DragSourceListener)

addDragSourceMotionListener

public void addDragSourceMotionListener(DragSourceMotionListener dsml)
Добавляет указанного слушателя событий движения перетаскивания к этому контексту, чтобы получать события DragSourceMotion во время операций перетаскивания, инициированных этим контекстом. Если слушатель null указан, никаких действий не выполняется, и исключение не выбрасывается.
Parameters:
dsml - слушатель событий движения перетаскивания
Since:
1.4
See Also:
  • removeDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener)
  • getDragSourceMotionListeners()

removeDragSourceMotionListener

public void removeDragSourceMotionListener(DragSourceMotionListener dsml)
Удаляет указанного слушателя событий движения перетаскивания из этого контекста. Если слушатель null указан, никаких действий не выполняется, и исключение не выбрасывается. Если слушатель, заданный аргументом, ранее не был добавлен в этот контекст, никаких действий не выполняется, и исключение не выбрасывается.
Parameters:
dsml - слушатель событий движения перетаскивания для удаления
Since:
1.4
See Also:
  • addDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener)
  • getDragSourceMotionListeners()

getDragSourceMotionListeners

public DragSourceMotionListener[] getDragSourceMotionListeners()
Возвращает всех зарегистрированных слушателей событий движения перетаскивания.
Returns:
все слушатели событий движения перетаскивания или пустой массив, если слушатели не зарегистрированы
Since:
1.4
See Also:
  • addDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener)
  • removeDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener)

getListeners

public <T extends EventListener> T[] getListeners(Class<T> listenerType)
Получает все объекты, в настоящее время зарегистрированные в качестве FooListener на этом DragSource. FooListener регистрируются с помощью метода addFooListener.
Type Parameters:
T - тип объектов-слушателей
Parameters:
listenerType - тип запрашиваемых слушателей; этот параметр должен указать интерфейс, являющийся потомком java.util.EventListener
Returns:
массив всех объектов, зарегистрированных в качестве FooListener на этом DragSource, или пустой массив, если такие слушатели не были добавлены
Throws:
ClassCastException - если listenerType не указывает класс или интерфейс, реализующий java.util.EventListener
Since:
1.4
See Also:
  • getDragSourceListeners()
  • getDragSourceMotionListeners()

getDragThreshold

public static int getDragThreshold()
Возвращает порог движения жеста перетаскивания. Порог движения жеста перетаскивания определяет рекомендуемое поведение для MouseDragGestureRecognizer.

Если системная переменная awt.dnd.drag.threshold установлена в положительное целое число, этот метод возвращает значение системной переменной; в противном случае, если доступна и поддерживается реализацией Java платформы соответствующая системная переменная рабочего стола, этот метод возвращает значение этой переменной; в противном случае этот метод возвращает некоторое значение по умолчанию. Соответствующую системную переменную рабочего стола можно запросить с помощью java.awt.Toolkit.getDesktopProperty("DnD.gestureMotionThreshold").

Returns:
порог движения жеста перетаскивания
Since:
1.5
See Also:
  • MouseDragGestureRecognizer

© 1993, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/dnd/DragSource.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API