Класс 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 к этому DragSource для получения событий источника перетаскивания во время операций перетаскивания, инициированных этим DragSource. |
void |
addDragSourceMotionListener |
Добавляет указанный DragSourceMotionListener к этому DragSource для получения событий движения перетаскивания во время операций перетаскивания, инициированных этим DragSource. |
DragGestureRecognizer |
createDefaultDragGestureRecognizer |
Создаёт новый DragGestureRecognizer, реализующий абстрактный подкласс DragGestureRecognizer по умолчанию для этого DragSource, и задаёт указанные Component и DragGestureListener для созданного объекта. |
<T extends DragGestureRecognizer> |
createDragGestureRecognizer |
Создаёт новый DragGestureRecognizer, реализующий указанный абстрактный подкласс DragGestureRecognizer, и задаёт указанные Component и DragGestureListener для созданного объекта. |
protected DragSourceContext |
createDragSourceContext |
Создаёт DragSourceContext для обработки текущей операции перетаскивания. |
static DragSource |
getDefaultDragSource() |
Возвращает объект DragSource, связанный с базовой платформой. |
DragSourceListener[] |
getDragSourceListeners() |
Возвращает все DragSourceListener, зарегистрированные в этом DragSource. |
DragSourceMotionListener[] |
getDragSourceMotionListeners() |
Возвращает все DragSourceMotionListener, зарегистрированные в этом DragSource. |
static int |
getDragThreshold() |
Возвращает порог движения жеста перетаскивания. |
FlavorMap |
getFlavorMap() |
Этот метод возвращает FlavorMap для этого DragSource. |
<T extends EventListener> |
getListeners |
Возвращает все объекты, зарегистрированные в данный момент как FooListener в этом DragSource. |
static boolean |
isDragImageSupported() |
Сообщает, доступна ли на базовой платформе поддержка Image перетаскивания. |
void |
removeDragSourceListener |
Удаляет указанный DragSourceListener из этого DragSource. |
void |
removeDragSourceMotionListener |
Удаляет указанный DragSourceMotionListener из этого DragSource. |
void |
startDrag |
Начинает перетаскивание, используя DragGestureEvent, инициировавший перетаскивание, первоначальный Cursor, Transferable данных перетаскиваемого объекта и DragSourceListener. |
void |
startDrag |
Начинает перетаскивание, используя DragGestureEvent, инициировавший перетаскивание, первоначальный Cursor, Transferable данных перетаскиваемого объекта, DragSourceListener и FlavorMap. |
void |
startDrag |
Начинает перетаскивание, используя DragGestureEvent, инициировавший перетаскивание, первоначальный Cursor, который следует использовать, Image для перетаскивания, смещение начала Image относительно горячей точки Cursor в момент срабатывания, данные перетаскиваемого объекта и DragSourceListener. |
void |
startDrag |
Начинает перетаскивание, используя DragGestureEvent, инициировавший перетаскивание, первоначальный Cursor, который следует использовать, Image для перетаскивания, смещение начала Image относительно горячей точки Cursor в момент срабатывания, Transferable данных перетаскиваемого объекта, DragSourceListener и FlavorMap. |
Подробное описание полей
DefaultCopyDrop
public static final Cursor DefaultCopyDrop
Cursor по умолчанию для операции копирования, указывающее, что в данный момент сброс разрешён. null, если GraphicsEnvironment.isHeadless() возвращает true.- См. также:
DefaultMoveDrop
public static final Cursor DefaultMoveDrop
Cursor по умолчанию для операции перемещения, указывающее, что в данный момент сброс разрешён. null, если GraphicsEnvironment.isHeadless() возвращает true.- См. также:
DefaultLinkDrop
public static final Cursor DefaultLinkDrop
Cursor по умолчанию для операции создания ссылки, указывающее, что в данный момент сброс разрешён. null, если GraphicsEnvironment.isHeadless() возвращает true.- См. также:
DefaultCopyNoDrop
public static final Cursor DefaultCopyNoDrop
Cursor по умолчанию для операции копирования, указывающее, что в данный момент сброс не разрешён. null, если GraphicsEnvironment.isHeadless() возвращает true.- См. также:
DefaultMoveNoDrop
public static final Cursor DefaultMoveNoDrop
Cursor по умолчанию для операции перемещения, указывающее, что в данный момент сброс не разрешён. null, если GraphicsEnvironment.isHeadless() возвращает true.- См. также:
DefaultLinkNoDrop
public static final Cursor DefaultLinkNoDrop
Cursor по умолчанию для операции создания ссылки, указывающее, что в данный момент сброс не разрешён. null, если GraphicsEnvironment.isHeadless() возвращает true.- См. также:
Подробное описание конструкторов
DragSource
public DragSource() throws HeadlessException
DragSource.- Вызывает исключение:
-
HeadlessException— если GraphicsEnvironment.isHeadless() возвращает true - См. также:
Подробное описание методов
getDefaultDragSource
public static DragSource getDefaultDragSource()
DragSource, связанный с базовой платформой.- Возвращает:
- DragSource платформы
- Вызывает исключение:
-
HeadlessException— если GraphicsEnvironment.isHeadless() возвращает true - См. также:
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
public void removeDragSourceListener(DragSourceListener dsl)
DragSourceListener из этого DragSource. Если указан null слушатель, никаких действий не выполняется и исключение не выбрасывается. Если слушатель, указанный в аргументе, ранее не добавлялся в этот DragSource, никаких действий не выполняется и исключение не выбрасывается.- Параметры:
-
dsl— удаляемыйDragSourceListener - Начиная с:
- 1.4
- См. также:
getDragSourceListeners
public DragSourceListener[] getDragSourceListeners()
DragSourceListenerы, зарегистрированные для этого DragSource.- Возвращает:
- все
DragSourceListenerэтогоDragSourceили пустой массив, если в данный момент такие слушатели не зарегистрированы - Начиная с:
- 1.4
- См. также:
addDragSourceMotionListener
public void addDragSourceMotionListener(DragSourceMotionListener dsml)
DragSourceMotionListener к этому DragSource, чтобы получать события перемещения при перетаскивании во время операций перетаскивания, инициированных с помощью этого DragSource. Если указан null слушатель, никаких действий не выполняется и исключение не выбрасывается.- Параметры:
-
dsml— добавляемыйDragSourceMotionListener - Начиная с:
- 1.4
- См. также:
removeDragSourceMotionListener
public void removeDragSourceMotionListener(DragSourceMotionListener dsml)
DragSourceMotionListener из этого DragSource. Если указан null слушатель, никаких действий не выполняется и исключение не выбрасывается. Если слушатель, указанный в аргументе, ранее не добавлялся в этот DragSource, никаких действий не выполняется и исключение не выбрасывается.- Параметры:
-
dsml— удаляемыйDragSourceMotionListener - Начиная с:
- 1.4
- См. также:
getDragSourceMotionListeners
public DragSourceMotionListener[] getDragSourceMotionListeners()
DragSourceMotionListenerы, зарегистрированные для этого DragSource.- Возвращает:
- все
DragSourceMotionListenerэтогоDragSourceили пустой массив, если в данный момент такие слушатели не зарегистрированы - Начиная с:
- 1.4
- См. также:
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
- См. также:
getDragThreshold
public static int getDragThreshold()
MouseDragGestureRecognizer. Если системному свойству awt.dnd.drag.threshold присвоено положительное целое число, этот метод возвращает значение системного свойства; в противном случае, если соответствующее свойство рабочего стола доступно и поддерживается реализацией платформы Java, метод возвращает значение этого свойства; иначе метод возвращает некоторое значение по умолчанию. Соответствующее свойство рабочего стола можно запросить с помощью java.awt.Toolkit.getDesktopProperty("DnD.gestureMotionThreshold").
- Возвращает:
- порог перемещения для жеста перетаскивания
- Начиная с:
- 1.5
- См. также:
© 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