Класс DragSource
- java.lang.Object
-
- java.awt.dnd.DragSource
- Все реализованные интерфейсы:
- Serializable
public class DragSource extends Object implements Serializable
Сущность, ответственная за инициирование операции Перетаскивания и Опускания, может использоваться в нескольких сценариях:
- 1 экземпляр на JVM на протяжении всего её существования.
- 1 экземпляр на каждый потенциальный класс объекта-инициатора перетаскивания (например, TextField). [зависит от реализации]
- 1 экземпляр на конкретный объект или приложение, связанный с экземпляром DragSource в графическом интерфейсе. [зависит от реализации]
- Любое другое произвольное отношение. [зависит от реализации]
Первоначальная интерпретация жеста пользователя и последующее начало операции перетаскивания являются обязанностью реализующего DragGestureRecognizer, который обычно реализуется классом DragGestureListener.
При возникновении жеста перетаскивания вызывается метод startDrag() DragSource для обработки навигационных жестов пользователя и доставки уведомлений протокола Перетаскивания и Опускания. DragSource разрешает только одну операцию Перетаскивания и Опускания в любой момент времени и отклоняет дальнейшие запросы startDrag(), выбросив исключение DragGestureException, пока текущая операция не будет завершена.
Метод startDrag() вызывает метод createDragSourceContext() для создания соответствующего DragSourceContext и связывает его с DragSource.
Если система Перетаскивания и Опускания по какой-либо причине не может инициировать операцию перетаскивания, метод startDrag() выбросит исключение DragGestureException, сигнализируя об этом условии. Обычно это исключение выбрасывается, когда базовая платформа не находится в состоянии инициировать перетаскивание или указанные параметры недействительны.
Обратите внимание, что набор операций, доступных источнику в начале операции перетаскивания, не может измениться до тех пор, пока операция не будет завершена. Операция(и) неизменна на протяжении всей операции относительно источника.
- С момента:
- 1.2
- См. также:
- Serialized Form
Поля
| Модификатор и тип | Поле и описание |
|---|---|
static Cursor |
DefaultCopyDrop По умолчанию DragOperation для операции копирования, указывающая, что опускание в данный момент разрешено. |
static Cursor |
DefaultCopyNoDrop По умолчанию DragOperation для операции копирования, указывающая, что опускание в данный момент запрещено. |
static Cursor |
DefaultLinkDrop По умолчанию DragOperation для операции ссылки, указывающая, что опускание в данный момент разрешено. |
static Cursor |
DefaultLinkNoDrop По умолчанию DragOperation для операции ссылки, указывающая, что опускание в данный момент запрещено. |
static Cursor |
DefaultMoveDrop По умолчанию DragOperation для операции перемещения, указывающая, что опускание в данный момент разрешено. |
static Cursor |
DefaultMoveNoDrop По умолчанию DragOperation для операции перемещения, указывающая, что опускание в данный момент запрещено. |
Краткое описание конструкторов
| Конструктор и описание |
|---|
DragSource() Создаёт новый экземпляр DragSource. |
Краткое описание методов
| Модификатор и тип | Метод и описание |
|---|---|
void |
addDragSourceListener(DragSourceListener dsl) Добавляет указанный DragSourceListener к этому DragSource для получения событий источника перетаскивания во время операций перетаскивания, инициированных этим DragSource. |
void |
addDragSourceMotionListener(DragSourceMotionListener dsml) Добавляет указанный DragSourceMotionListener к этому DragSource для получения событий движения перетаскивания во время операций перетаскивания, инициированных этим DragSource. |
DragGestureRecognizer |
createDefaultDragGestureRecognizer(Component c,
int actions,
DragGestureListener dgl) Создаёт новый DragSourceContext, реализующий по умолчанию абстрактный подкласс DragGestureListener для этого DragSource, и устанавливает указанный DragSourceContext и DragGestureListener на вновь созданный объект. |
<T extends DragGestureRecognizer> |
createDragGestureRecognizer(Class<T> recognizerAbstractClass,
Component c,
int actions,
DragGestureListener dgl) Создаёт новый DragSourceContext, реализующий указанный абстрактный подкласс DragGestureListener, и устанавливает указанный DragSourceContext и DragGestureListener на вновь созданный объект. |
protected DragSourceContext |
createDragSourceContext(java.awt.dnd.peer.DragSourceContextPeer dscp,
DragGestureEvent dgl,
Cursor dragCursor,
Image dragImage,
Point imageOffset,
Transferable t,
DragSourceListener dsl) Создаёт DragSourceContext для обработки текущей операции перетаскивания. |
static DragSource |
getDefaultDragSource() Возвращает объект DragSourceContext, связанный с базовой платформой. |
DragSourceListener[] |
getDragSourceListeners() Возвращает всех DragSourceListener, зарегистрированных с этим DragSource. |
DragSourceMotionListener[] |
getDragSourceMotionListeners() Возвращает всех DragSourceMotionListener, зарегистрированных с этим DragSource. |
static int |
getDragThreshold() Возвращает порог движения жеста перетаскивания. |
FlavorMap |
getFlavorMap() Возвращает DragSourceContext для этого DragSource. |
<T extends EventListener> |
getListeners(Class<T> listenerType) Возвращает все объекты, зарегистрированные в качестве DragGestureListener в этом DragSource. |
static boolean |
isDragImageSupported() Указывает, поддерживается ли перетаскивание на базовой платформе. |
void |
removeDragSourceListener(DragSourceListener dsl) Удаляет указанного DragSourceListener из этого DragSource. |
void |
removeDragSourceMotionListener(DragSourceMotionListener dsml) Удаляет указанного DragSourceMotionListener из этого DragSource. |
void |
startDrag(DragGestureEvent trigger,
Cursor dragCursor,
Image dragImage,
Point dragOffset,
Transferable transferable,
DragSourceListener dsl) Инициализирует перетаскивание с использованием указанного DragGestureEvent, DragSourceContext, DragSource, смещения, данных и DragGestureRecognizer. |
void |
startDrag(DragGestureEvent trigger,
Cursor dragCursor,
Image dragImage,
Point imageOffset,
Transferable transferable,
DragSourceListener dsl,
FlavorMap flavorMap) Инициализирует перетаскивание с использованием указанного DragGestureEvent, DragSourceContext, DragSource, смещения, данных, DragGestureRecognizer и дополнительно DragSourceMotionListener. |
void |
startDrag(DragGestureEvent trigger,
Cursor dragCursor,
Transferable transferable,
DragSourceListener dsl) Инициализирует перетаскивание с использованием указанного DragGestureEvent, DragSourceContext, данных и DragGestureRecognizer. |
void |
startDrag(DragGestureEvent trigger,
Cursor dragCursor,
Transferable transferable,
DragSourceListener dsl,
FlavorMap flavorMap) Инициализирует перетаскивание с использованием указанного DragGestureEvent, DragSourceContext, данных, DragSourceMotionListener и DragGestureRecognizer. |
Методы, унаследованные от класса java.lang.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()
Сообщает, доступна ли поддержка перетаскивания изображений на базовой платформе.
- Возвращает:
- доступна ли поддержка перетаскивания изображений на этой платформе
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(java.awt.dnd.peer.DragSourceContextPeer dscp,
DragGestureEvent dgl,
Cursor dragCursor,
Image dragImage,
Point imageOffset,
Transferable t,
DragSourceListener dsl) Создает DragSourceContext для обработки текущей операции перетаскивания.
Для включения нового подкласса DragSourceContext, создайте подкласс DragSource и переопределите этот метод.
Если dragImage равно null, для представления обратной связи о перетаскивании не используется изображение, но NullPointerException не вызывается.
Если dsl равно null, ни один прослушиватель источника перетаскивания не регистрируется с созданным DragSourceContext, но NullPointerException не вызывается.
- Параметры:
-
dscp- ПеретаскиваемыйDragSourceContextPeerдля этого перетаскивания -
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 на вновь созданный объект.
- Параметры:
-
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для добавления - Since:
- 1.4
- См. также:
-
removeDragSourceListener(java.awt.dnd.DragSourceListener),getDragSourceListeners()
removeDragSourceListener
public void removeDragSourceListener(DragSourceListener dsl)
Удаляет указанного DragSourceListener из этого DragSource. Если задан слушатель null , никакие действия не выполняются и исключение не выбрасывается. Если слушатель, указанный в аргументе, ранее не был добавлен к этому DragSource, никакие действия не выполняются и исключение не выбрасывается.
- Параметры:
-
dsl-DragSourceListenerдля удаления - Since:
- 1.4
- См. также:
-
addDragSourceListener(java.awt.dnd.DragSourceListener),getDragSourceListeners()
getDragSourceListeners
public DragSourceListener[] getDragSourceListeners()
Возвращает всех DragSourceListener , зарегистрированных с этим DragSource.
- Возвращает:
- все
DragSourceэтогоDragSourceили пустой массив, если такие слушатели не зарегистрированы - Since:
- 1.4
- См. также:
-
addDragSourceListener(java.awt.dnd.DragSourceListener),removeDragSourceListener(java.awt.dnd.DragSourceListener)
addDragSourceMotionListener
public void addDragSourceMotionListener(DragSourceMotionListener dsml)
Добавляет указанного DragSourceMotionListener к этому DragSource для получения событий движения перетаскивания во время операций перетаскивания, инициированных этим DragSource. Если задан слушатель null , никакие действия не выполняются и исключение не выбрасывается.
- Параметры:
-
dsml-DragSourceMotionListenerдля добавления - Since:
- 1.4
- См. также:
-
removeDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener),getDragSourceMotionListeners()
removeDragSourceMotionListener
public void removeDragSourceMotionListener(DragSourceMotionListener dsml)
Удаляет указанного DragSourceMotionListener из этого DragSource. Если задан слушатель null , никакие действия не выполняются и исключение не выбрасывается. Если слушатель, указанный в аргументе, ранее не был добавлен к этому DragSource, никакие действия не выполняются и исключение не выбрасывается.
- Параметры:
-
dsml-DragSourceMotionListenerдля удаления - Since:
- 1.4
- См. также:
-
addDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener),getDragSourceMotionListeners()
getDragSourceMotionListeners
public DragSourceMotionListener[] getDragSourceMotionListeners()
Возвращает всех DragSourceMotionListener , зарегистрированных с этим DragSource.
- Возвращает:
- все
DragSourceэтогоDragSourceили пустой массив, если такие слушатели не зарегистрированы - Since:
- 1.4
- См. также:
-
addDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener),removeDragSourceMotionListener(java.awt.dnd.DragSourceMotionListener)
getListeners
public <T extends EventListener> T[] getListeners(Class<T> listenerType)
Получает все объекты, текущие зарегистрированные как FooListener в этом DragSource. FooListener регистрируются с помощью метода addFooListener.
- Параметры:
-
listenerType- тип запрашиваемых слушателей; этот параметр должен указать интерфейс, наследуемый отjava.util.EventListener - Возвращает:
- массив всех объектов, зарегистрированных как
FooListenerв этомDragSource, или пустой массив, если такие слушатели не были добавлены - Исключение:
-
ClassCastException- еслиlistenerTypeне указывает класс или интерфейс, реализующийjava.util.EventListener - Since:
- 1.4
- См. также:
-
getDragSourceListeners(),getDragSourceMotionListeners()
getDragThreshold
public static int getDragThreshold()
Возвращает порог движения жеста перетаскивания. Порог движения жеста перетаскивания определяет рекомендуемое поведение для MouseDragGestureRecognizer.
Если системная переменная awt.dnd.drag.threshold установлена в положительное целое число, этот метод возвращает значение системной переменной; в противном случае, если доступна соответствующая системная переменная для рабочего стола и поддерживается реализацией Java платформы, этот метод возвращает значение этой переменной; в противном случае этот метод возвращает некоторое значение по умолчанию. Соответствующая системная переменная для рабочего стола может быть запрошена с помощью java.awt.Toolkit.getDesktopProperty("DnD.gestureMotionThreshold").
- Возвращает:
- порог движения жеста перетаскивания
- Since:
- 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.