Сначала вы должны изучить Поддержка Swing DragDrop . После этого есть несколько маленьких хитростей для разных операционных систем. Как только у вас все получится, вы будете обрабатывать обратный вызов drop (). В этом обратном вызове вы захотите проверить DataFlavor Transferable.
Для Windows вы можете просто проверить DataFlavor.isFlavorJavaFileListType () и затем получить свои данные вот так
List<File> dropppedFiles = (List<File>)transferable.getTransferData(DataFlavor.javaFileListFlavor)
Для Linux (и, вероятно, Solaris) DataFlavor немного сложнее. Вам нужно будет сделать свой собственный DataFlavor, и тип Transferable будет другим
nixFileDataFlavor = new DataFlavor("text/uri-list;class=java.lang.String");
String data = (String)transferable.getTransferData(nixFileDataFlavor);
for(StringTokenizer st = new StringTokenizer(data, "\r\n"); st.hasMoreTokens();)
{
String token = st.nextToken().trim();
if(token.startsWith("#") || token.isEmpty())
{
// comment line, by RFC 2483
continue;
}
try
{
File file = new File(new URI(token))
// store this somewhere
}
catch(...)
{
// do something good
....
}
}