Spec-Zone .ru
спецификации, руководства, описания, API
|
В основе передачи данных механизм TransferHandler
class. Поскольку его имя предлагает, TransferHandler
обеспечивает легкий механизм для того, чтобы он передал данные и от a JComponent
— все детали содержатся в этом class и его классах поддержки. Большинству компонентов предоставляют обработчик передачи значения по умолчанию. Можно создать и установить свой собственный обработчик передачи на любом компоненте.
Есть три метода, используемые, чтобы затронуть a TransferHandler
на компоненте:
setDragEnabled(boolean)
JList
.setDropMode(DropMode)
JList
, JTable
, и JTree
; ссылка берет Вас к документации для JList
.setTransferHandler(TransferHandler)
JComponent
, таким образом, это наследовано каждым компонентом Swing.Как упомянуто ранее, значение по умолчанию обработчики передачи Swing, такие как используемые текстовыми компонентами и цветным селектором, оказывают поддержку, которая, как полагают, была самой полезной и для импорта и для экспорта данных. Однако список, таблица, и дерево не поддерживают отбрасывание по умолчанию. Причина этого состоит в том, что нет никакого универсального способа обработать отбрасывание на этих компонентах. Например, что означает отбросить на определенном узле a JTree
? Это заменяет узел, вставляет ниже этого, или вставляет как дочерний элемент того узла? Кроме того, мы не знаем, какая модель находится позади дерева — это не могло бы быть изменчиво.
В то время как Swing не может обеспечить реализацию по умолчанию для этих компонентов, платформа для отбрасывания там. Вы должны только обеспечить пользовательское TransferHandler
это управляет фактическим импортом данных.
Если Вы устанавливаете пользовательское TransferHandler
на компонент Swing заменяется поддержка значения по умолчанию. Например, если Вы заменяете JTextField
's TransferHandler
с тем, который обрабатывает цвета только, Вы отключите его возможность поддерживать импорт и экспорт текста.
Если следует заменить значение по умолчанию TransferHandler
— например, тот, который обрабатывает текст — Вы должны будете повторно реализовать текстовый импорт и экспортировать возможность. Это не должно быть столь же обширно как, что обеспечивает Swing — это могло быть столь же просто как поддержка StringFlavor
разновидность данных, в зависимости от потребностей Вашего приложения.
Затем мы показываем что TransferHandler
методы обязаны реализовывать экспорт данных.