Posted By:
Matthew_Schultz
Posted On:
Friday, January 16, 2004 06:24 PM
I've got it working on PC as well, but when I bring the code to a Mac, I get:
java.lang.ClassCastException
at sun.awt.datatransfer.DataTransferer.translateTransferable(DataTransferer.java:1189)
at apple.awt.CDataTransferer.translateTransferable(CDataTransferer.java:125)
at sun.awt.datatransfer.DataTransferer$5.run(DataTransferer.java:2018)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:178)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:170)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
Basically, I've created a transfer handler and assigned it to the list:
public void mouseDragged(MouseEvent e) {
TransferHandler th = theList.this.getTransferHandler();
th.exportAsDrag(theList.this, e, TransferHandler.MOVE);
}
(The input adapter class is inline with the list class, which is why I've got theList.this.getTransferHandler())
Again, this works perfectly on Windows, but crashes immediately on the Mac. Additionally, my list stores a list of components, which when dragged on the PC shows a correctly sized outline. On the Mac, it shows an outline for the entire list.
Does anybody have code for implementing DnD on Mac OS X?