Класс DragSource
- java.lang.Object
-
- java.awt.dnd.DragSource
- Все реализованные интерфейсы:
Serializable
public class DragSource extends Object implements Serializable
Сущность, отвечающая за инициирование операции перетаскивания и перемещения, может быть использована в ряде сценариев:
- 1 экземпляр по умолчанию на JVM в течение всего срока жизни JVM.
- 1 экземпляр на каждый класс потенциального объекта-инициатора перетаскивания (например, TextField). [зависит от реализации]
- 1 экземпляр на каждый конкретный объект, или приложение-специфичный объект, связанный с экземпляром DragSource в графическом интерфейсе. [зависит от реализации]
- Любая другая произвольная ассоциация. [зависит от реализации]
Первоначальная интерпретация жеста пользователя и последующее начало операции перетаскивания являются ответственностью реализующего класса 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> | 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> | 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'sDragSourceListeners или пустой массив, если такие слушатели не зарегистрированы в настоящее время - С тех пор как:
- 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'sDragSourceMotionListeners или пустой массив, если такие слушатели не зарегистрированы в настоящее время - С тех пор как:
- 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