将Outlook电子邮件拖到JavaFX应用程序中
我制作了一个Javafx场景来处理拖放操作,例如,如果您从windows资源管理器或桌面拖动一个文件,它就可以正常工作 但是,如果我尝试从Outlook中执行此操作,则行为会很奇怪 我意识到,当您从dragboard组件内的另一个程序中拖动n drop时,“getContentTypes”方法将使用以下代码返回几个DataFormat对象:将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
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