您好我需要一个DnD解决方案来将Outlook邮件附件拖到Stackpane。
JavaFX / Outlook 2010
stackpaneDragAndDropZone.setOnDragOver((DragEvent event) -> {
Dragboard db = event.getDragboard();
System.out.println(db.getContentTypes());
});
有这个输出:
[[message/external-body;access-type=clipboard;index=0;name="faxdoc-150217-1300-+49-206581978.pdf"], [RenPrivateItem]]
我如何使用此RenPrivateItem?
在常规Java上我得到了一个包含以下代码的文件:
dropTarget.addDropTargetListener(new DropTargetAdapter() {
public void drop(DropTargetDropEvent dtde) {
Transferable t = dtde.getTransferable();
try {
DataFlavor[] dataFlavors = t.getTransferDataFlavors();
dtde.acceptDrop(DnDConstants.ACTION_COPY);
//create a temp file
File temp = File.createTempFile("temp-file-name", ".tmp");
for (int i = 0; i < dataFlavors.length; i++) {
File file = new File(t.getTransferData(dataFlavors[i]).toString().replace("[", "").replace("]", ""));
Desktop.getDesktop().open(new File(file.getCanonicalPath()));
}
dtde.dropComplete(true);
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
答案 0 :(得分:0)
顾名思义,这是一种私人格式。但是你会得到CF_FILEDESCRIPTOR和CF_FILECONTENTS格式。