Класс TransferHandler
- java.lang.Object
-
- javax.swing.TransferHandler
- Все реализованные интерфейсы:
Serializable
public class TransferHandler extends Object implements Serializable
Этот класс используется для обработки передачи Transferable к компонентам Swing и из них. Transferable используется для представления данных, которые обмениваются через операцию вырезания, копирования или вставки из/в буфер обмена. Он также используется в операциях перетаскивания для представления перетаскивания из компонента и опускания в компонент. Swing предоставляет функциональность, которая автоматически поддерживает сочетания клавиш вырезать, копировать и вставить, которые используют функциональность, предоставляемую реализацией этого класса. Swing также предоставляет функциональность, которая автоматически поддерживает перетаскивание, которая использует функциональность, предоставляемую реализацией этого класса. Разработчик Swing может сосредоточиться на определении семантики передачи, в первую очередь, установив свойство transferHandler на компоненте Swing.
Этот класс реализован для обеспечения стандартного поведения передачи свойства компонента, просто указав имя свойства в конструкторе. Например, чтобы передать цвет переднего плана от одного компонента к другому, либо через буфер обмена, либо с помощью операции перетаскивания, можно создать TransferHandler со строкой "foreground". Встроенная поддержка будет использовать цвет, возвращаемый getForeground, в качестве источника передачи и setForeground для назначения передачи.
Дополнительную информацию см. в разделе Использование перетаскивания и передачи данных в учебнике Java.
- С момента:
- 1.4
- См. также:
- Сериализованная форма
Вложенные классы
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class | TransferHandler.DropLocation | Представляет место, где вставленные данные должны быть вставлены. |
static class | TransferHandler.TransferSupport | Этот класс инкапсулирует все соответствующие детали передачи из буфера обмена или перетаскивания, а также позволяет настраивать аспекты опыта перетаскивания. |
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
static int | COPY | Представление действия передачи "копировать". |
static int | COPY_OR_MOVE | Представление возможности действия источника, либо "копировать", либо "переместить". |
static int | LINK | Представление действия передачи "ссылка". |
static int | MOVE | Представление действия передачи "переместить". |
static int | NONE | Представление действия передачи "нет". |
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | TransferHandler() | Удобный конструктор для подклассов. |
TransferHandler(String property) | Создает обработчик передачи, который может передавать свойство Java Bean от одного компонента к другому через буфер обмена или операцию перетаскивания. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean | canImport(JComponent comp,
DataFlavor[] transferFlavors) | Указывает, будет ли компонент принимать импорт данного набора типов данных перед фактической попыткой импорта. |
boolean | canImport(TransferHandler.TransferSupport support) | Этот метод вызывается многократно во время операции перетаскивания, чтобы позволить разработчику настроить свойства и вернуть приемлемость передач; со значением |
protected Transferable | createTransferable(JComponent c) | Создает |
void | exportAsDrag(JComponent comp,
InputEvent e,
int action) | Инициирует поддержку перетаскивания Swing. |
protected void | exportDone(JComponent source,
Transferable data,
int action) | Вызывается после экспорта данных. |
void | exportToClipboard(JComponent comp,
Clipboard clip,
int action) | Вызывает передачу от данного компонента к данному буферу обмена. |
static Action | getCopyAction() | Возвращает |
static Action | getCutAction() | Возвращает |
Image | getDragImage() | Возвращает изображение перетаскивания. |
Point | getDragImageOffset() | Возвращает смещение якоря для перетаскивания изображения. |
static Action | getPasteAction() | Возвращает |
int | getSourceActions(JComponent c) | Возвращает тип действий передачи, поддерживаемых источником; любое побитовое ИЛИ-соединение |
Icon | getVisualRepresentation(Transferable t) | Возвращает объект, который устанавливает вид передачи. |
boolean | importData(JComponent comp,
Transferable t) | Вызывает передачу в компонент из буфера обмена или операции опускания перетаскивания. |
boolean | importData(TransferHandler.TransferSupport support) | Вызывает передачу из буфера обмена или операции перетаскивания. |
void | setDragImage(Image img) | Устанавливает параметр изображения перетаскивания. |
void | setDragImageOffset(Point p) | Устанавливает смещение якоря для перетаскивания изображения. |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Поля
NONE
public static final int NONE
Представление действия передачи "нет".
- См. также:
- Значения константных полей
COPY
public static final int COPY
Представление действия передачи "копировать". Это значение используется, когда данные копируются в буфер обмена или копируются в другое место в операции перетаскивания.
- См. также:
- Значения константных полей
MOVE
public static final int MOVE
Представление действия передачи "переместить". Это значение используется, когда данные перемещаются в буфер обмена (т. е. вырезаются) или перемещаются в другое место в операции перетаскивания.
- См. также:
- Значения константных полей
COPY_OR_MOVE
public static final int COPY_OR_MOVE
Представление возможности действия источника, либо "копировать", либо "переместить".
- См. также:
- Значения константных полей
LINK
public static final int LINK
Представление действия передачи "ссылка". Это значение используется для указания того, что данные должны быть связаны в операции перетаскивания.
- С момента:
- 1.6
- См. также:
-
DnDConstants.ACTION_LINK, Значения константных полей
Конструкторы
TransferHandler
public TransferHandler(String property)
Создает обработчик передачи, который может передавать свойство Java Bean от одного компонента к другому через буфер обмена или операцию перетаскивания.
- Параметры:
-
property- имя свойства для передачи; это может бытьnullесли свойству, связанному с обработчиком передачи (подкласс, выполняющий какой-либо другой вид передачи, например), нет (подкласс, выполняющий какой-либо другой вид передачи, например)
TransferHandler
protected TransferHandler()
Удобный конструктор для подклассов.
Методы
getCutAction
public static Action getCutAction()
Возвращает Action, выполняющий операции вырезания в буфер обмена. При выполнении данное действие воздействует на JComponent источник ActionEvent, вызывая exportToClipboard, с действием MOVE, над TransferHandler компонентом.
- Возвращает:
Actionдля выполнения вырезания в буфер обмена
getCopyAction
public static Action getCopyAction()
Возвращает Action, выполняющий операции копирования в буфер обмена. При выполнении данное действие воздействует на JComponent источник ActionEvent, вызывая exportToClipboard, с действием COPY, над TransferHandler компонентом.
- Возвращает:
Actionдля выполнения копирования в буфер обмена
getPasteAction
public static Action getPasteAction()
Возвращает Action, выполняющий операции вставки из буфера обмена. При выполнении данное действие воздействует на JComponent источник ActionEvent, вызывая importData, с содержимым буфера обмена, над TransferHandler компонентом.
- Возвращает:
Actionдля выполнения вставки из буфера обмена
setDragImage
public void setDragImage(Image img)
Устанавливает параметр изображения для перетаскивания. Изображение должно быть готово для отрисовки к моменту вызова. Изображение хранится по ссылке по причинам производительности.
- Параметры:
-
img- изображение для перетаскивания
getDragImage
public Image getDragImage()
Возвращает изображение для перетаскивания. Если изображения для перетаскивания нет, возвращается значение null.
- Возвращает:
- ссылка на изображение для перетаскивания
setDragImageOffset
public void setDragImageOffset(Point p)
Устанавливает смещение якоря для изображения, подлежащего перетаскиванию. Оно не может быть null.
- Параметры:
-
p- объектPoint, соответствующий координатам смещения якоря изображения относительно левого верхнего угла изображения
getDragImageOffset
public Point getDragImageOffset()
Возвращает смещение якоря для изображения, подлежащего перетаскиванию.
- Возвращает:
- объект
Point, соответствующий координатам смещения якоря изображения относительно левого верхнего угла изображения. По умолчанию возвращает точку(0,0).
exportAsDrag
public void exportAsDrag(JComponent comp,
InputEvent e,
int action) Инициализирует поддержку перетаскивания Swing. Вызывается различными реализациями пользовательского интерфейса в пакете javax.swing.plaf.basic, если свойство dragEnabled установлено для компонента. Может вызываться пользовательскими реализациями UI для использования поддержки перетаскивания Swing. Этот метод также может быть вызван расширением Swing, написанным как подкласс JComponent, чтобы использовать поддержку перетаскивания Swing.
Передача не обязательно будет завершена к моменту возврата этого вызова (т.е. вызов не блокирует ожидание завершения переноса). Передача будет осуществляться через реализацию Swing механизма java.awt.dnd, не требуя дополнительных усилий от разработчика. Метод exportDone будет вызван после завершения передачи.
- Параметры:
-
comp- компонент, содержащий данные, которые будут переданы; предоставляется для обеспечения совместного использованияTransferHandler -
e- событие, которое вызвало передачу -
action- действие переноса, первоначально запрошенное; либоCOPY,MOVEилиLINK; система DnD может изменить используемое действие в ходе операции перетаскивания
exportToClipboard
public void exportToClipboard(JComponent comp,
Clipboard clip,
int action)
throws IllegalStateException Выполняет передачу из указанного компонента в указанный буфер обмена. Этот метод вызывается по умолчанию действиями вырезания и копирования, зарегистрированными в карте действий компонента.
Передача будет выполнена с использованием механизма java.awt.datatransfer, не требуя дополнительных усилий от разработчика. Любая передача данных будет завершена, и метод exportDone будет вызван с действием, которое произошло, до возврата этого метода. Если буфер обмена недоступен при попытке размещения данных в нем, исключение IllegalStateException, брошенное Clipboard.setContents(Transferable, ClipboardOwner), будет распространено через этот метод. Однако, exportDone будет сначала вызван с действием NONE для обеспечения согласованности.
- Параметры:
-
comp- компонент, содержащий данные, которые будут переданы; предоставляется для обеспечения совместного использованияTransferHandler -
clip- буфер обмена для передачи данных -
action- запрос действия переноса; должно быть значение либоCOPYилиMOVE; выполняемая операция — пересечение возможностей передачи, предоставленных getSourceActions, и запрошенного действия; пересечение может привести к действиюNONE, если запрошенное действие не поддерживается - Исключения:
-
IllegalStateException- если буфер обмена в настоящее время недоступен - См. также:
Clipboard.setContents(Transferable, ClipboardOwner)
importData
public boolean importData(TransferHandler.TransferSupport support)
Вызывает передачу из буфера обмена или операции перетаскивания. Transferable импортируемый и компонент для передачи содержатся в TransferSupport.
Хотя реализация перетаскивания вызывает canImport для определения пригодности передачи перед вызовом этого метода, реализация вставки этого не делает. Следовательно, нельзя предполагать, что передача приемлема при вызове этого метода для вставки. Рекомендуется явно вызвать canImport для обработки этого случая.
Примечание: Объект TransferSupport , переданный в этот метод, действителен только в течение вызова метода. После возврата метода неизвестно, какие значения он может содержать.
- Параметры:
-
support- объект, содержащий детали передачи, неnull. - Возвращает:
- true, если данные были вставлены в компонент, иначе false
- Исключения:
-
NullPointerException- еслиsupportявляетсяnull - С:
- 1.6
- См. также:
canImport(TransferHandler.TransferSupport)
importData
public boolean importData(JComponent comp,
Transferable t) Вызывает передачу в компонент из буфера обмена или операции опускания перетаскивания. Transferable представляет данные, которые будут импортированы в компонент.
Примечание: Swing теперь вызывает новую версию importData , которая принимает TransferSupport, которая в свою очередь вызывает этот метод (если компонент в TransferSupport является JComponent). Разработчикам рекомендуется вызывать и переопределять новую версию, так как она предоставляет больше информации (и является единственной версией, которая поддерживает использование с TransferHandler , установленным непосредственно на JFrame или другом не-JComponent).
- Параметры:
-
comp- компонент, который должен получить передачу; предоставляется для обеспечения совместного использованияTransferHandler -
t- данные для импорта - Возвращает:
- true, если данные были вставлены в компонент, иначе false
- См. также:
importData(TransferHandler.TransferSupport)
canImport
public boolean canImport(TransferHandler.TransferSupport support)
Этот метод вызывается многократно во время операции перетаскивания, чтобы позволить разработчику настраивать свойства и возвращать приемлемость передаваемых данных; возвращаемое значение true указывает, что передача, представленная данным TransferSupport (который содержит все детали передачи), приемлема в данный момент, и значение false отклоняет передачу.
Для тех компонентов, которые автоматически отображают местоположение опускания во время операции перетаскивания, принятие передачи по умолчанию указывает им отобразить местоположение опускания. Это можно изменить, вызвав setShowDropLocation в TransferSupport.
По умолчанию, когда передача принимается, выбранное действие опускания — это действие, выбранное пользователем через жест перетаскивания. Разработчик может переопределить это и выбрать другое действие из поддерживаемых действий источника, вызвав setDropAction в TransferSupport.
При каждом вызове canImport, TransferSupport содержит свежие данные. Следовательно, любые свойства, установленные на нём, должны быть установлены при каждом вызове. При опускании canImport вызывается один раз перед вызовом importData. Любые состояния, установленные в TransferSupport во время этого последнего вызова, будут доступны в importData.
Этот метод не вызывается внутренне в ответ на операции вставки. Следовательно, рекомендуется, чтобы реализации importData явно вызывали этот метод для таких случаев, и чтобы этот метод был подготовлен к возвращению пригодности операций вставки тоже.
Примечание: Объект TransferSupport , переданный в этот метод, действителен только в течение вызова метода. После возврата метода неизвестно, какие значения он может содержать.
- Параметры:
-
support- объект, содержащий детали передачи, неnull. - Возвращает:
-
true, если импорт может произойти,falseв противном случае - Исключения:
-
NullPointerException- еслиsupportявляетсяnull - С:
- 1.6
- См. также:
-
importData(TransferHandler.TransferSupport),TransferHandler.TransferSupport.setShowDropLocation(boolean),TransferHandler.TransferSupport.setDropAction(int)
canImport
public boolean canImport(JComponent comp,
DataFlavor[] transferFlavors) Указывает, будет ли компонент принимать импорт заданного набора типов данных перед фактической попыткой импорта.
Примечание: Swing теперь вызывает новую версию canImport, которая принимает TransferSupport, которая в свою очередь вызывает этот метод (только если компонент в TransferSupport является JComponent). Разработчикам рекомендуется вызывать и переопределять новую версию, так как она предоставляет больше информации (и является единственной версией, которая поддерживает использование набора TransferHandler непосредственно на JFrame или другом не-JComponent).
- Parameters:
-
comp— компонент, который должен получить передачу; предоставлен для обеспечения совместного использованияTransferHandler -
transferFlavors— доступные форматы данных - Returns:
- true, если данные можно вставить в компонент, в противном случае — false
- See Also:
canImport(TransferHandler.TransferSupport)
getSourceActions
public int getSourceActions(JComponent c)
Возвращает тип операций передачи, поддерживаемых источником; любое сочетание побитового ИЛИ COPY, MOVE и LINK.
Некоторые модели не являются изменяемыми, поэтому операция передачи MOVE в этом случае не должна рекламироваться. Возврат NONE отключает передачи из компонента.
- Parameters:
-
c— компонент, содержащий данные, которые будут переданы; предоставлен для обеспечения совместного использованияTransferHandler - Returns:
-
COPYесли свойство переноса найдено, в противном случае возвращаетNONE
getVisualRepresentation
public Icon getVisualRepresentation(Transferable t)
Возвращает объект, определяющий вид переноса. Это полезно как для предоставления обратной связи во время операции перетаскивания, так и для представления переноса в реализации буфера обмена с визуальным представлением. Реализация интерфейса Icon не должна изменять область графического клипа или уровень альфа-канала. Реализация значка не обязательно должна быть прямоугольной или рисовать всю границу, и логика, вызывающая метод рисования значка, не должна предполагать, что все биты нарисованы. null — допустимое значение возврата для этого метода и указывает на отсутствие визуального представления. В этом случае вызывающая логика свободна представлять передаваемый объект как ей угодно.
Стандартная логика Swing не выполнит анимацию перетаскивания с альфа-смешиванием, если результат — null.
- Parameters:
-
t— данные, которые будут переданы; ожидается, что это значение было создано методомcreateTransferable - Returns:
-
null, указывая на отсутствие стандартного визуального представления
createTransferable
protected Transferable createTransferable(JComponent c)
Создаёт Transferable для использования в качестве источника передачи данных. Возвращает представление передаваемых данных или null, если свойство компонента null.
- Parameters:
-
c— компонент, содержащий данные, которые будут переданы; предоставлен для обеспечения совместного использованияTransferHandler - Returns:
- представление передаваемых данных или
null, если свойство, связанное сc, равноnull
exportDone
protected void exportDone(JComponent source,
Transferable data,
int action) Вызывается после передачи данных. Этот метод должен удалить данные, которые были переданы, если действие было MOVE.
Этот метод реализован так, что ничего не делает, так как MOVE не является поддерживаемым действием этой реализации (getSourceActions не включает MOVE).
- Parameters:
-
source— компонент, являвшийся источником данных -
data— данные, которые были переданы, или, возможно, null, если действие —NONE. -
action— фактическое выполненное действие
© 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/javax/swing/TransferHandler.html