System.out.println(item.getclass()); // class java.awt.datatransfer.Dataflavor
Dataflavor file = (Dataflavor)item;
System.out.println(file.getPrimaryType()); // application
System.out.println(file.getHumanPresentableName());class // application/x-java-file-list
嗨,我在从应用程序拖到Java应用程序时遇到问题。如果我从Windows资源管理器中拖动文件,但从GroupWise Mail(Novell)中拖动电子邮件,则无法正常工作。如果我将电子邮件项从GroupWise拖到Windows资源管理器,它将创建一个* .GWI文件,然后我将该文件拖到Java应用程序中也可以正常工作,但是我想直接将其从GroupWise拖到Java应用程序中。
我一直在弄清楚发生了什么,我担心的是,当我这样做时:
List data = (List) ts.getTransferable().getTransferData(
Dataflavor.javaFileListflavor);
它返回一个异常:
java.io.IOException: no native data was transfered
at sun.awt.dnd.SunDropTargetcontextPeer.getTransferData(SunDropTargetcontextPeer.java:281)
at sun.awt.datatransfer.TransferableProxy.getTransferData(TransferableProxy.java:73)
at java.awt.dnd.DropTargetcontext$TransferableProxy.getTransferData(DropTargetcontext.java:376)
at gui.nuevaEntrada$FileListTransferHandler.importData(nuevaEntrada.java:178)
at javax.swing.TransferHandler$DropHandler.drop(TransferHandler.java:1544)
at java.awt.dnd.DropTarget.drop(DropTarget.java:455)
at javax.swing.TransferHandler$SwingDropTarget.drop(TransferHandler.java:1282)
at sun.awt.dnd.SunDropTargetcontextPeer.processDropMessage(SunDropTargetcontextPeer.java:538)
at sun.awt.dnd.SunDropTargetcontextPeer$EventDispatcher.dispatchDropEvent(SunDropTargetcontextPeer.java:852)
at sun.awt.dnd.SunDropTargetcontextPeer$EventDispatcher.dispatchEvent(SunDropTargetcontextPeer.java:776)
at sun.awt.dnd.SunDropTargetEvent.dispatch(SunDropTargetEvent.java:48)
at java.awt.Component.dispatchEventImpl(Component.java:4744)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processDropTargetEvent(Container.java:4609)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4471)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.accessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityaccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityaccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.accessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityaccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
如果有人可以帮助我,我先谢谢你。