关于Java Oracle社区的问题(https://community.oracle.com/thread/3934986)
问题:
我为Button
设置了以下代码,它的全名代表文件路径。所以当Button
被拖到文件夹或桌面时(假设在Windows
中)它由用户的操作系统复制。
我想获取已完成放置的目标文件夹。
代码:
button.setOnDragDetected(event -> {
/* allow copy transfer mode */
Dragboard db = startDragAndDrop(TransferMode.COPY,TransferMode.LINK);
/* put a string on dragboard */
ClipboardContent content = new ClipboardContent();
/*Adding a file into the ClipboardContent*/
content.putFiles(Arrays.asList(new File(getSongPath())));
........//not showing this code....
db.setContent(content);
event.consume();
}
修改:(29/09/2016)
完成放弃后:
setOnDragDone(d -> {
System.out.println(
"Drag Done,is drop completed?" + d.isDropCompleted() + " , is accepted?" + d.isAccepted());
System.out.println("Accepted Mode:" + d.getAcceptedTransferMode());
System.out.println(" Target:" + d.getTarget() + " Gestoure Target:" + d.getGestureTarget());
});
我得到此输出,您可以看到Gesture Target == null
Drag Done:true , s drop completed?false , is accepted?true
Accepted Mode:COPY
Target:SmartController$TableViewer@112437[styleClass=table-view] Gesture Target:null
答案 0 :(得分:4)
我做了一些研究,可能不可能。例如,这个帖子:Get file path for drag-n-drop file on Windows Explorer
您可以尝试以下解决方法:
这只是解决方法的一个想法(我没有完全测试它,但值得检查)
编辑1:值得一读。如何在Windows上执行文件夹检测:
http://www.codeproject.com/Articles/23207/Drag-and-Drop-to-Windows-Folder-C