G
Guest
Gast
Hallo!
Ich habe ein Problem bei Drag and Drop, genauer gesagt mit DropTargetDropEvent.
Ich habe mir ein DropTargetListener implementiert mit der Methode public void drop(DropTargetDropEvent dtde). Dort will ich an das transferierte Object vom Typ TNode heran:
Soweit, so gut. TNode hat neben einigen primitiven Datenfeldern eine Referenz auf einen anderen TNode. Im Transferable ist diese Referenz gesetzt, in der tnode-Zuweisung in Zeile 2 nicht mehr! getTransferData liefert ein neues Object, in dem die Referenz auf null gesetzt wurde.
Die Angaben hab ich mit dem Debugger herausgefunden. TNode implements Transferable, Cloneable.Die clone()-Methode funktioniert auch, das Problem sollte also in getTransferData liegen.
tr ist mit DropTargetContext$TransferableProxy belegt, einer protected inner class, auf die ich keinen Zugriff habe. Auch Ableiten von DropTargetContext ist nicht möglich (kein Default Konststruktor etc.).
Hat jemand eine Idee, wie ich an das ursprüngliche Object herankomme?
Vielen Dank schon einmal!
Ich habe ein Problem bei Drag and Drop, genauer gesagt mit DropTargetDropEvent.
Ich habe mir ein DropTargetListener implementiert mit der Methode public void drop(DropTargetDropEvent dtde). Dort will ich an das transferierte Object vom Typ TNode heran:
Code:
Transferable tr = dtde.getTransferable();
tnode = (TNode) tr.getTransferData(TNode.tnodeFlavor);
Soweit, so gut. TNode hat neben einigen primitiven Datenfeldern eine Referenz auf einen anderen TNode. Im Transferable ist diese Referenz gesetzt, in der tnode-Zuweisung in Zeile 2 nicht mehr! getTransferData liefert ein neues Object, in dem die Referenz auf null gesetzt wurde.
Die Angaben hab ich mit dem Debugger herausgefunden. TNode implements Transferable, Cloneable.Die clone()-Methode funktioniert auch, das Problem sollte also in getTransferData liegen.
tr ist mit DropTargetContext$TransferableProxy belegt, einer protected inner class, auf die ich keinen Zugriff habe. Auch Ableiten von DropTargetContext ist nicht möglich (kein Default Konststruktor etc.).
Hat jemand eine Idee, wie ich an das ursprüngliche Object herankomme?
Vielen Dank schon einmal!