Класс TransferHandler
- java.lang.Object
-
- javax.swing.TransferHandler
- Все реализованные интерфейсы:
- Serializable
public class TransferHandler extends Object implements Serializable
Этот класс используется для обработки передачи данных между компонентами 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
An int representing no transfer action.
- См. также:
- Constant Field Values
COPY
public static final int COPY
An int representing a "copy" transfer action. This value is used when data is copied to a clipboard or copied elsewhere in a drag and drop operation.
- См. также:
- Constant Field Values
MOVE
public static final int MOVE
An int representing a "move" transfer action. This value is used when data is moved to a clipboard (i.e. a cut) or moved elsewhere in a drag and drop operation.
- См. также:
- Constant Field Values
COPY_OR_MOVE
public static final int COPY_OR_MOVE
An int representing a source action capability of either "copy" or "move".
- См. также:
- Constant Field Values
LINK
public static final int LINK
An int representing a "link" transfer action. This value is used to specify that data should be linked in a drag and drop operation.
- С версии:
- 1.6
- См. также:
-
DnDConstants.ACTION_LINK, Constant Field Values
Конструкторы
TransferHandler
public TransferHandler(String property)
Создаёт обработчик передачи, который может передавать свойство Java Bean из одного компонента в другой через буфер обмена или операцию перетаскивания.
- Параметры:
-
property- имя свойства для передачи; это может бытьnullесли нет свойства, связанного с обработчиком передачи (например, подкласс, который выполняет другой тип передачи)
TransferHandler
protected TransferHandler()
Вспомогательный конструктор для подклассов.
Методы
getCutAction
public static Action getCutAction()
Возвращает Action, который выполняет операции вырезания в буфер обмена. При выполнении это действие работает с JComponent источником ActionEvent, вызывая exportToClipboard, с действием MOVE, на TransferHandler компонента.
- Возвращает:
- an
Actionfor performing cuts to the clipboard
getCopyAction
public static Action getCopyAction()
Возвращает Action, который выполняет операции копирования в буфер обмена. При выполнении это действие работает с JComponent источником ActionEvent, вызывая exportToClipboard, с действием COPY, на TransferHandler компонента.
- Возвращает:
- an
Actionfor performing copies to the clipboard
getPasteAction
public static Action getPasteAction()
Возвращает Action, который выполняет операции вставки из буфера обмена. При выполнении это действие работает с JComponent источником ActionEvent, вызывая importData, с содержимым буфера обмена, на TransferHandler компонента.
- Возвращает:
- an
Actionfor performing pastes from the clipboard
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 установлено для компонента. Это может быть вызвано пользовательскими реализациями пользовательского интерфейса для использования поддержки перетаскивания Swing. Этот метод также может быть вызван расширением Swing, написанным как подкласс JComponent, чтобы воспользоваться преимуществами поддержки перетаскивания Swing.
Передача не обязательно будет завершена при возврате этого вызова (т. е. вызов не блокируется в ожидании перетаскивания). Передача будет осуществляться через реализацию Swing механизма java.awt.dnd, не требуя дополнительных усилий от разработчика. Метод exportDone будет вызван после завершения передачи.
- Параметры:
-
comp- компонент, содержащий данные, которые необходимо передать; предоставлено для обеспечения совместного использованияTransferHandlers -
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- компонент, содержащий данные, которые необходимо передать; предоставлено для обеспечения совместного использованияTransferHandlers -
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- компонент для получения передачи; предоставлено для обеспечения совместного использованияTransferHandlers -
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).
- Параметры:
-
comp- компонент, который получит перемещение; предоставлен для обеспечения совместного использованияTransferHandler -
transferFlavors- доступные форматы данных - Возвращает:
- true, если данные могут быть вставлены в компонент, false в противном случае
- См. также:
canImport(TransferHandler.TransferSupport)
getSourceActions
public int getSourceActions(JComponent c)
Возвращает тип действий перемещения, поддерживаемых источником; любая комбинация побитового ИЛИ COPY, MOVE и LINK.
Некоторые модели не изменяемы, поэтому операция перемещения MOVE не должна рекламироваться в этом случае. Возврат NONE отключает перемещения из компонента.
- Параметры:
-
c- компонент, содержащий данные, которые будут перемещены; предоставлен для обеспечения совместного использованияTransferHandler - Возвращает:
-
COPYесли свойство перемещения найдено, в противном случае возвращаетNONE
getVisualRepresentation
public Icon getVisualRepresentation(Transferable t)
Возвращает объект, определяющий вид перемещения. Это полезно как для предоставления обратной связи во время операции перетаскивания, так и для представления перемещения в реализации буфера обмена с визуальным отображением. Реализация интерфейса Icon не должна изменять область графики или уровень альфа-каналов. Реализация иконки не обязательно должна быть прямоугольной или рисовать всю ограничивающую прямоугольную область, и логика, вызывающая метод рисования иконок, не должна предполагать рисования всех битов. null является допустимым возвращаемым значением для этого метода и указывает, что визуальное представление не предоставлено. В этом случае вызывающая логика свободна представлять передаваемое значение как хочет.
Стандартная логика Swing не будет выполнять анимацию перетаскивания с альфа-смешиванием, если возвращаемое значение null.
- Параметры:
-
t- данные, которые будут перемещены; ожидается, что это значение было создано методомcreateTransferable - Возвращает:
-
null, указывая, что нет стандартного визуального представления
createTransferable
protected Transferable createTransferable(JComponent c)
Создаёт Transferable для использования в качестве источника для передачи данных. Возвращает представление передаваемых данных или null если свойство компонента null
- Параметры:
-
c- компонент, содержащий данные, которые будут перемещены; предоставлен для обеспечения совместного использованияTransferHandler - Возвращает:
- представление передаваемых данных или
nullесли свойство, связанное сc, имеет значениеnull
exportDone
protected void exportDone(JComponent source,
Transferable data,
int action) Вызывается после передачи данных. Этот метод должен удалить данные, которые были перемещены, если действие было MOVE.
Этот метод реализован так, чтобы ничего не делать, поскольку MOVE не является поддерживаемым действием этой реализации (getSourceActions не включает MOVE).
- Параметры:
-
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.