Swing drag / drop: принимать / отклонять удаление списка файлов в зависимости от количества файлов / типов файлов? - PullRequest
4 голосов
/ 05 февраля 2010

Я использую DropTarget и реализую DropTargetListener для обработки событий отбрасывания, и это хорошо работает для приема файлов (просто посмотрите, есть ли у Transferable объект DataFlavor, который возвращает true из isFlavorJavaFileListType()).

Теперь я хотел бы запретить определенные типы отбрасывания и дать соответствующую оценку:

  • запретить несколько файлов (принимается только один файл)
  • запретить файл, тип файла которого не входит в принятый список

Могу ли я сделать это? Кажется, я помню, что при работе с XPCOM или COM это было болезненно, что для того, чтобы получить достаточно информации об удаляемом предмете, сначала нужно было принять его, поэтому была такая ситуация, когда вы могли только смотреть на данные. вкус, а не на сам предмет, прежде чем принять падение.

Если я не могу отклонить отброшенный набор элементов заранее, есть ли соответствующее действие пользовательского интерфейса (сделать звуковой сигнал или что-то в этом роде), если отброшенные данные недействительны?

1 Ответ

1 голос
/ 05 февраля 2010
  • Вы можете проверить размер списка
  • вы можете использовать библиотеку типов mime или проверьте расширения файла

Если вы хотите воспроизвести звуковой сигнал, вы можете сделать следующее:

java.awt.Toolkit.getDefaultToolkit().beep();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...