将Outlook电子邮件拖到JavaFX应用程序中

将Outlook电子邮件拖到JavaFX应用程序中,javafx,drag-and-drop,Javafx,Drag And Drop,我制作了一个Javafx场景来处理拖放操作,例如,如果您从windows资源管理器或桌面拖动一个文件,它就可以正常工作 但是,如果我尝试从Outlook中执行此操作,则行为会很奇怪 我意识到,当您从dragboard组件内的另一个程序中拖动n drop时,“getContentTypes”方法将使用以下代码返回几个DataFormat对象: dragField.setOnDragOver((DragEvent event) -> { Dragboard db = event.get

我制作了一个Javafx场景来处理拖放操作,例如,如果您从windows资源管理器或桌面拖动一个文件,它就可以正常工作

但是,如果我尝试从Outlook中执行此操作,则行为会很奇怪

我意识到,当您从dragboard组件内的另一个程序中拖动n drop时,“getContentTypes”方法将使用以下代码返回几个DataFormat对象:

dragField.setOnDragOver((DragEvent event) -> {
    Dragboard db = event.getDragboard();
    System.out.println(db.getContentTypes());
});
DataFormat.lookupMimeType("message/external-body;access-type=clipboard;index=0;name=\"testEmail.msg\"");
输出类似于:

[text/plain]-De Objet Reçu Taille Catégories D D Test 13:56 40 Ko[DragImageBits]- java.nio.HeapByteBuffer[pos=0 lim=90304 cap=90304] [邮件/外部正文;访问类型=剪贴板;索引=0;name=“testEmail.msg”]- 空[对象描述符]-java.nio.HeapByteBuffer[pos=0 lim=74 cap=74][RenPrivateItem]-null[CSV]-java.nio.HeapByteBuffer[pos=0 lim=282上限=282]

它似乎能够从outlookmsg文件中提取信息,因为我得到了类似于头的东西,而且“testEmail.msg”文件名是正确的

但是,当我尝试使用此代码时:

dragField.setOnDragOver((DragEvent event) -> {
    Dragboard db = event.getDragboard();
    System.out.println(db.getContentTypes());
});
DataFormat.lookupMimeType("message/external-body;access-type=clipboard;index=0;name=\"testEmail.msg\"");
它返回空值。。。事实上,mime类型端有一个“null”

有没有办法将这些DataFormat对象转换为java文件或apache poi msg文件?任何事情都会令人惊奇

谢谢你的帮助!:D