Класс 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 к этому объекту 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 |
Инициирует перетаскивание, используя источник перетаскивания, начальные данные, объект перетаскивания и тип операции. |
void |
startDrag |
Инициирует перетаскивание, используя источник перетаскивания, начальные данные, объект перетаскивания, дополнительное описание и тип операции. |
void |
startDrag |
Инициирует перетаскивание, используя источник перетаскивания, начальные данные, объект перетаскивания, смещение источника и данные перетаскивания. |
void |
startDrag |
Инициирует перетаскивание, используя источник перетаскивания, начальные данные, объект перетаскивания, смещение источника, дополнительные данные и тип операции. |
Краткое описание полей
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если поддержка 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)
null указан, никаких действий не выполняется, и исключение не выбрасывается.- Parameters:
-
dsl- слушатель событий перетаскивания - Since:
- 1.4
- See Also:
removeDragSourceListener
public void removeDragSourceListener(DragSourceListener dsl)
null указан, никаких действий не выполняется, и исключение не выбрасывается. Если слушатель, заданный аргументом, ранее не был добавлен в этот контекст, никаких действий не выполняется, и исключение не выбрасывается.- Parameters:
-
dsl- слушатель событий перетаскивания для удаления - Since:
- 1.4
- See Also:
getDragSourceListeners
public DragSourceListener[] getDragSourceListeners()
- Returns:
- все слушатели событий перетаскивания или пустой массив, если слушатели не зарегистрированы
- Since:
- 1.4
- See Also:
addDragSourceMotionListener
public void addDragSourceMotionListener(DragSourceMotionListener dsml)
null указан, никаких действий не выполняется, и исключение не выбрасывается.- Parameters:
-
dsml- слушатель событий движения перетаскивания - Since:
- 1.4
- See Also:
removeDragSourceMotionListener
public void removeDragSourceMotionListener(DragSourceMotionListener dsml)
null указан, никаких действий не выполняется, и исключение не выбрасывается. Если слушатель, заданный аргументом, ранее не был добавлен в этот контекст, никаких действий не выполняется, и исключение не выбрасывается.- Parameters:
-
dsml- слушатель событий движения перетаскивания для удаления - Since:
- 1.4
- See Also:
getDragSourceMotionListeners
public DragSourceMotionListener[] getDragSourceMotionListeners()
- Returns:
- все слушатели событий движения перетаскивания или пустой массив, если слушатели не зарегистрированы
- Since:
- 1.4
- See Also:
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:
getDragThreshold
public static int getDragThreshold()
MouseDragGestureRecognizer. Если системная переменная awt.dnd.drag.threshold установлена в положительное целое число, этот метод возвращает значение системной переменной; в противном случае, если доступна и поддерживается реализацией Java платформы соответствующая системная переменная рабочего стола, этот метод возвращает значение этой переменной; в противном случае этот метод возвращает некоторое значение по умолчанию. Соответствующую системную переменную рабочего стола можно запросить с помощью java.awt.Toolkit.getDesktopProperty("DnD.gestureMotionThreshold").
- Returns:
- порог движения жеста перетаскивания
- Since:
- 1.5
- See Also:
© 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