Как обрабатывать файл, перетаскиваемый на банку?
Кто-нибудь знает, как сделать так, чтобы, когда я буду перетаскивать файл на флягу, это даст
+Open with ...
вариант? Можно ли это сделать с помощью Java?
2 ответа
Он не поддерживает непосредственное перетаскивание документа на значок Jar (или, в данном случае, ярлык), но Java Web Start предоставляет средство для объявления интереса к типу файла (ассоциации файлов).
Чтобы он был открыт в приложении. дважды щелкните этот тип документа или щелкните правой кнопкой мыши и перейдите к пункту "Открыть с помощью".
Обратите внимание, что много приложений. добавьте сопоставление типов файлов для большинства изображений, так что вы будете бороться с ними в отношении поведения по умолчанию "двойной щелчок". Мне не нравятся ваши шансы на поддержание этого значения по умолчанию, учитывая множество приложений рисования. проверит настройки по умолчанию для файловых ассоциаций и предложит "вернуть" все, что не назначено для него.
Посмотрите демонстрацию Файловых сервисов JNLP. который..
.. предлагает пользователю связать расширение файла
.zzz
(просто тип файла вряд ли конфликтует с существующими ассоциациями файлов) типа контентаtext/sleepytime
, Файл сборки позволяет установить тип файла во время сборки, см.build.xml
в распространяемом для деталей.
ОК, вы не можете реализовать перетаскивание для файла JAR. Тем не менее, вы можете реализовать перетаскивание файлов для всех JComponents
(лайк JFrame
, JLabel
и т. д.) путем изменения обработчиков передачи.
Обработчики передачи позволяют:
1. Укажите, как компонент экспортирует данные (если есть)
2. Укажите, какие данные он импортирует (в вашем случае файл изображения)
3. Какие данные импортируются / экспортируются.
Вот учебник для TransferHandler
, Вот подробное руководство: http://docs.oracle.com/javase/tutorial/uiswing/dnd/transferhandler.html