DataHandler не будет работать так, как вы прописали, потому что согласно API:
DataHandler реализует интерфейс Transferable, так что данные могут использоваться в операциях передачи данных AWT, таких как вырезание ивставьте и перетащите.Реализация интерфейса Transferable зависит от доступности установленного объекта DataContentHandler, соответствующего типу MIME данных, представленных в конкретном экземпляре DataHandler.
Я понимаю, что это означает, что если вы не используетеего метод setDataContentHandlerFactory
и реализация всех необходимых интерфейсов, по сути, DataHandler просто вернет ноль.Вероятно, это причина того, что DataHandler не работает так, как вы ожидаете.Даже несмотря на то, что он реализует интерфейс Transferable
, он не реализует его так, чтобы он функционировал адекватно вашим конкретным потребностям.
Эта функциональность была бы предоставлена DataContentHandler
, реализация которого была бы оставлена на ваше усмотрение.
Кажется, менее утомительно напрямую реализовывать класс Transferable, как предлагалось ранее.