Иногда может возникать необходимость в копировании и вставке данных такого типа, которые не поддерживаются системным буфером обмена, то есть не является сериализируемым. Для передачи ссылки на произвольный объект Java в пределах одной и той же виртуальной машины (JVM) применяется тип MIME:
1 |
application/x-java-jvm-local-objectref;class=имя_класса |
Для этого типа требуется определять объект-оболочку Transferable. Необходимый для этого процесс полостью аналогичен процессу определения объекта-оболочки SerialTransferable.Ссылка на объект имеет значение только в пределах одной виртуальной машины. Поэтому копировать такой объект в системный буфер обмена нельзя. Вместо этого следует использовать локальный буфер обмена:
1 |
Clipboard clipboard = new Clipboard("local"); |
В качестве параметра конструктору нужно передавать желаемое имя для буфера обмена.
Однако у подхода с использованием локального буфера обмена имеется один серьезный недостаток. Он требует обеспечения синхронизации между локальным и системным буферами, чтобы пользователи их не путали.