Вопрос о Java Oracle Community (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();
}
Edit: (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:[email protected][styleClass=table-view] Gesture Target:null