Класс DragSource

Все реализованные интерфейсы:
Serializable
public class DragSource
extends Object
implements Serializable

Сущность, отвечающая за инициирование операции перетаскивания и перемещения, может быть использована в ряде сценариев:

  • 1 экземпляр по умолчанию на JVM в течение всего срока жизни JVM.
  • 1 экземпляр на каждый класс потенциального объекта-инициатора перетаскивания (например, TextField). [зависит от реализации]
  • 1 экземпляр на каждый конкретный объект, или приложение-специфичный объект, связанный с экземпляром DragSource в графическом интерфейсе. [зависит от реализации]
  • Любая другая произвольная ассоциация. [зависит от реализации]
После получения DragSource, необходимо также получить объект DropTarget, чтобы ассоциировать объект DragSource с конкретным объектом DropTarget.

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

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

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

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

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

С момента:
1.2
См. также:
Serialized Form

Поля

Модификатор и тип Поле Описание
static Cursor DefaultCopyDrop

Значение по умолчанию для операции копирования, указывающее, что сброс разрешен в данный момент.

static Cursor DefaultCopyNoDrop

Значение по умолчанию для операции копирования, указывающее, что сброс запрещен в данный момент.

static Cursor DefaultLinkDrop

Значение по умолчанию для операции ссылки, указывающее, что сброс разрешен в данный момент.

static Cursor DefaultLinkNoDrop

Значение по умолчанию для операции ссылки, указывающее, что сброс запрещен в данный момент.

static Cursor DefaultMoveDrop

Значение по умолчанию для операции перемещения, указывающее, что сброс разрешен в данный момент.

static Cursor DefaultMoveNoDrop

Значение по умолчанию для операции перемещения, указывающее, что сброс запрещен в данный момент.

Конструкторы

Конструктор Описание
DragSource()

Создает новый объект DragSource.

Методы

Модификатор и тип Метод Описание
void addDragSourceListener​(DragSourceListener dsl)

Добавляет указанный DragSourceListener в этот объект DragSource, чтобы получать события drag source во время операций перетаскивания, инициированных этим DragSource.

void addDragSourceMotionListener​(DragSourceMotionListener dsml)

Добавляет указанный DragSourceMotionListener в этот объект DragSource, чтобы получать события движения drag source во время операций перетаскивания, инициированных этим DragSource.

DragGestureRecognizer createDefaultDragGestureRecognizer​(Component c, int actions, DragGestureListener dgl)

Создаёт новый DragGestureRecognizer, реализующий подкласс DragGestureRecognizer для этого DragSource, и устанавливает указанные DragGestureListener и DragSourceListener на созданный объект.

<T extends DragGestureRecognizer>
T
createDragGestureRecognizer​(Class<T> recognizerAbstractClass, Component c, int actions, DragGestureListener dgl)

Создаёт новый DragGestureRecognizer, реализующий указанный подкласс DragGestureRecognizer, и устанавливает указанные DragGestureListener и DragSourceListener на созданный объект.

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()

Метод возвращает DragGestureRecognizer для данного DragSource.

<T extends EventListener>
T[]
getListeners​(Class<T> listenerType)

Возвращает все объекты, зарегистрированные в данный момент как DragGestureRecognizers в этом DragSource.

static boolean isDragImageSupported()

Указывает, поддерживается ли перетаскивание на текущей платформе.

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

Значение по умолчанию для операции копирования, указывающее, что перетаскивание в данный момент разрешено. null если GraphicsEnvironment.isHeadless() возвращает true.

См. также:
GraphicsEnvironment.isHeadless()

DefaultMoveDrop

public static final Cursor DefaultMoveDrop

Значение по умолчанию для операции перемещения, указывающее, что перетаскивание в данный момент разрешено. null если GraphicsEnvironment.isHeadless() возвращает true.

См. также:
GraphicsEnvironment.isHeadless()

DefaultLinkDrop

public static final Cursor DefaultLinkDrop

Значение по умолчанию для операции создания ссылки, указывающее, что перетаскивание в данный момент разрешено. null если GraphicsEnvironment.isHeadless() возвращает true.

См. также:
GraphicsEnvironment.isHeadless()

DefaultCopyNoDrop

public static final Cursor DefaultCopyNoDrop

Значение по умолчанию для операции копирования, указывающее, что перетаскивание в данный момент запрещено. null если GraphicsEnvironment.isHeadless() возвращает true.

См. также:
GraphicsEnvironment.isHeadless()

DefaultMoveNoDrop

public static final Cursor DefaultMoveNoDrop

Значение по умолчанию для операции перемещения, указывающее, что перетаскивание в данный момент запрещено. null если GraphicsEnvironment.isHeadless() возвращает true.

См. также:
GraphicsEnvironment.isHeadless()

DefaultLinkNoDrop

public static final Cursor DefaultLinkNoDrop

Значение по умолчанию для операции создания ссылки, указывающее, что перетаскивание в данный момент запрещено. 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 на базовой платформе.

Возвращает:
поддерживается ли Drag Image на данной платформе

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, обработчик событий перетаскивания DragSourceListener не регистрируется в созданном 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 - запрашиваемый абстрактный тип
actions - разрешенные действия перетаскивания
c - целевой Component
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(java.awt.dnd.DragSourceListener), getDragSourceListeners()

removeDragSourceListener

public void removeDragSourceListener(DragSourceListener dsl)

Удаляет указанный DragSourceListener из этого DragSource. Если задан слушатель null, никаких действий не выполняется и исключение не выбрасывается. Если слушатель, указанный в аргументе, ранее не был добавлен к этому DragSource, никаких действий не выполняется и исключение не выбрасывается.

Параметры:
dsl - удаляемый DragSourceListener
С тех пор как:
1.4
См. также:
addDragSourceListener(java.awt.dnd.DragSourceListener), getDragSourceListeners()

getDragSourceListeners

public DragSourceListener[] getDragSourceListeners()

Получает всех DragSourceListeners, зарегистрированных с этим DragSource.

Возвращает:
все DragSource's DragSourceListeners или пустой массив, если такие слушатели не зарегистрированы в настоящее время
С тех пор как:
1.4
См. также:
addDragSourceListener(java.awt.dnd.DragSourceListener), removeDragSourceListener(java.awt.dnd.DragSourceListener)

addDragSourceMotionListener

public void addDragSourceMotionListener(DragSourceMotionListener dsml)

Добавляет указанный DragSourceMotionListener к этому DragSource для получения событий движения перетаскивания во время операций перетаскивания, инициированных этим DragSource. Если задан слушатель null, никаких действий не выполняется и исключение не выбрасывается.

Параметры:
dsml - добавляемый DragSourceMotionListener
С тех пор как:
1.4
См. также:
removeDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener), getDragSourceMotionListeners()

removeDragSourceMotionListener

public void removeDragSourceMotionListener(DragSourceMotionListener dsml)

Удаляет указанный DragSourceMotionListener из этого DragSource. Если задан слушатель null, никаких действий не выполняется и исключение не выбрасывается. Если слушатель, указанный в аргументе, ранее не был добавлен к этому DragSource, никаких действий не выполняется и исключение не выбрасывается.

Параметры:
dsml - удаляемый DragSourceMotionListener
С тех пор как:
1.4
См. также:
addDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener), getDragSourceMotionListeners()

getDragSourceMotionListeners

public DragSourceMotionListener[] getDragSourceMotionListeners()

Получает всех DragSourceMotionListeners, зарегистрированных с этим DragSource.

Возвращает:
все DragSource's DragSourceMotionListeners или пустой массив, если такие слушатели не зарегистрированы в настоящее время
С тех пор как:
1.4
См. также:
addDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener), removeDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener)

getListeners

public <T extends EventListener> T[] getListeners(Class<T> listenerType)

Получает все объекты, зарегистрированные в качестве FooListeners на этом DragSource. FooListeners регистрируются с помощью метода addFooListener.

Параметры типа:
T - тип объектов слушателей
Параметры:
listenerType - тип запрашиваемых слушателей; этот параметр должен указывать интерфейс, который наследуется от java.util.EventListener
Возвращает:
массив всех объектов, зарегистрированных в качестве FooListeners на этом DragSource, или пустой массив, если такие слушатели не были добавлены
Исключения:
ClassCastException - если listenerType не указывает класс или интерфейс, реализующий java.util.EventListener
С тех пор как:
1.4
См. также:
getDragSourceListeners(), getDragSourceMotionListeners()

getDragThreshold

public static int getDragThreshold()

Возвращает порог движения жеста перетаскивания. Порог движения жеста перетаскивания определяет рекомендуемое поведение для MouseDragGestureRecognizers.

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

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

© 1993, 2020, 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/11/docs/api/java.desktop/java/awt/dnd/DragSource.html

Spec-Zone .ru
спецификации, руководства, описания, API