首先,您应该研究Swing
DragDrop支持。在那之后,针对不同操作系统的一些小技巧。一旦一切顺利,您将处理drop()回调。在此回调中,您将要检查Transferable的DataFlavor。
对于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, "rn"); 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 .... }}


