Spec-Zone.ru › OpenJDK 25

Класс DragSource

java.lang.Object
java.awt.dnd.DragSource
Все реализуемые интерфейсы:
Serializable
public class DragSource extends Object implements Serializable
DragSource — это сущность, отвечающая за инициирование операции перетаскивания, и может использоваться в различных сценариях:
  • 1 экземпляр по умолчанию на JVM на всё время работы этой JVM.
  • 1 экземпляр для каждого класса потенциального объекта-инициатора перетаскивания (например, TextField). [зависит от реализации]
  • 1 экземпляр для каждого экземпляра определённого Component или специфичного для приложения объекта, связанного с экземпляром Component в графическом интерфейсе. [зависит от реализации]
  • Некоторая другая произвольная связь. [зависит от реализации]
После получения 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)
Начинает перетаскивание, используя DragGestureEvent, инициировавший перетаскивание, первоначальный Cursor, Transferable данных перетаскиваемого объекта и DragSourceListener.
void startDrag(DragGestureEvent trigger, Cursor dragCursor, Transferable transferable, DragSourceListener dsl, FlavorMap flavorMap)
Начинает перетаскивание, используя DragGestureEvent, инициировавший перетаскивание, первоначальный Cursor, Transferable данных перетаскиваемого объекта, DragSourceListener и FlavorMap.
void startDrag(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point dragOffset, Transferable transferable, DragSourceListener dsl)
Начинает перетаскивание, используя DragGestureEvent, инициировавший перетаскивание, первоначальный Cursor, который следует использовать, Image для перетаскивания, смещение начала Image относительно горячей точки Cursor в момент срабатывания, данные перетаскиваемого объекта и DragSourceListener.
void startDrag(DragGestureEvent trigger, Cursor dragCursor, Image dragImage, Point imageOffset, Transferable transferable, DragSourceListener dsl, FlavorMap flavorMap)
Начинает перетаскивание, используя DragGestureEvent, инициировавший перетаскивание, первоначальный Cursor, который следует использовать, Image для перетаскивания, смещение начала Image относительно горячей точки Cursor в момент срабатывания, Transferable данных перетаскиваемого объекта, DragSourceListener и FlavorMap.

Методы, объявленные в классе 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, если на этой платформе доступна поддержка изображения перетаскивания, иначе 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)
Создаёт DragSourceContext для обработки текущей операции перетаскивания.

Чтобы использовать новый подкласс DragSourceContext, создайте подкласс DragSource и переопределите этот метод.

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

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

Параметры:
dgl — DragGestureEvent, инициировавшее перетаскивание
dragCursor — начальный Cursor для этой операции перетаскивания или null для обработки курсора по умолчанию; дополнительные сведения о механизме обработки курсора во время перетаскивания и сброса см. в классе DragSourceContext
dragImage — Image для перетаскивания или null
imageOffset — смещение начала координат Image относительно точки активации курсора в момент запуска
t — данные перетаскивания
dsl — DragSourceListener
Возвращает:
DragSourceContext
Вызывает исключение:
NullPointerException — если dscp равно null
NullPointerException — если dgl равно null
NullPointerException — если dragImage не равно null и imageOffset равно null
NullPointerException — если t равно null
IllegalArgumentException — если Component, связанный с событием запуска, равен null.
IllegalArgumentException — если DragSource события запуска равен null.
IllegalArgumentException — если действие перетаскивания для события запуска равно DnDConstants.ACTION_NONE.
IllegalArgumentException — если исходные действия для DragGestureRecognizer, связанного с событием запуска, равны DnDConstants.ACTION_NONE.

getFlavorMap

public FlavorMap getFlavorMap()
Этот метод возвращает FlavorMap для этого DragSource.
Возвращает:
FlavorMap для этого DragSource

createDragGestureRecognizer

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

createDefaultDragGestureRecognizer

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

addDragSourceListener

public void addDragSourceListener(DragSourceListener dsl)
Добавляет указанный DragSourceListener к этому DragSource, чтобы получать события источника перетаскивания во время операций перетаскивания, инициированных с помощью этого DragSource. Если указан null слушатель, никаких действий не выполняется и исключение не выбрасывается.
Параметры:
dsl — добавляемый DragSourceListener
Начиная с:
1.4
См. также:
  • removeDragSourceListener(DragSourceListener)
  • getDragSourceListeners()

removeDragSourceListener

public void removeDragSourceListener(DragSourceListener dsl)
Удаляет указанный DragSourceListener из этого DragSource. Если указан null слушатель, никаких действий не выполняется и исключение не выбрасывается. Если слушатель, указанный в аргументе, ранее не добавлялся в этот DragSource, никаких действий не выполняется и исключение не выбрасывается.
Параметры:
dsl — удаляемый DragSourceListener
Начиная с:
1.4
См. также:
  • addDragSourceListener(DragSourceListener)
  • getDragSourceListeners()

getDragSourceListeners

public DragSourceListener[] getDragSourceListeners()
Возвращает все DragSourceListenerы, зарегистрированные для этого DragSource.
Возвращает:
все DragSourceListener этого DragSource или пустой массив, если в данный момент такие слушатели не зарегистрированы
Начиная с:
1.4
См. также:
  • addDragSourceListener(DragSourceListener)
  • removeDragSourceListener(DragSourceListener)

addDragSourceMotionListener

public void addDragSourceMotionListener(DragSourceMotionListener dsml)
Добавляет указанный DragSourceMotionListener к этому DragSource, чтобы получать события перемещения при перетаскивании во время операций перетаскивания, инициированных с помощью этого DragSource. Если указан null слушатель, никаких действий не выполняется и исключение не выбрасывается.
Параметры:
dsml — добавляемый DragSourceMotionListener
Начиная с:
1.4
См. также:
  • removeDragSourceMotionListener(DragSourceMotionListener)
  • getDragSourceMotionListeners()

removeDragSourceMotionListener

public void removeDragSourceMotionListener(DragSourceMotionListener dsml)
Удаляет указанный DragSourceMotionListener из этого DragSource. Если указан null слушатель, никаких действий не выполняется и исключение не выбрасывается. Если слушатель, указанный в аргументе, ранее не добавлялся в этот DragSource, никаких действий не выполняется и исключение не выбрасывается.
Параметры:
dsml — удаляемый DragSourceMotionListener
Начиная с:
1.4
См. также:
  • addDragSourceMotionListener(DragSourceMotionListener)
  • getDragSourceMotionListeners()

getDragSourceMotionListeners

public DragSourceMotionListener[] getDragSourceMotionListeners()
Возвращает все DragSourceMotionListenerы, зарегистрированные для этого DragSource.
Возвращает:
все DragSourceMotionListener этого DragSource или пустой массив, если в данный момент такие слушатели не зарегистрированы
Начиная с:
1.4
См. также:
  • addDragSourceMotionListener(DragSourceMotionListener)
  • removeDragSourceMotionListener(DragSourceMotionListener)

getListeners

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

getDragThreshold

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

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

Возвращает:
порог перемещения для жеста перетаскивания
Начиная с:
1.5
См. также:
  • MouseDragGestureRecognizer

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/awt/dnd/DragSource.html

Spec-Zone.ru

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