2011-08-03 20 views
0

任何人都可以幫助我將DataFlavor從一棵樹插入另一棵樹嗎?我一直在關注一些教程,並在兩棵樹中進行拖放操作,但我希望能夠在它們之間進行拖動。2 JTrees之間的DataFlavors(Java)

這是在我重寫的importData方法內引發異常的部分;

try { 
     Transferable t = support.getTransferable(); 
     nodes = (MyNode[])t.getTransferData(nodesFlavor); 
} catch(UnsupportedFlavorException ufe) { 
     System.out.println("UnsupportedFlavor: " + ufe.getMessage()); 
} catch(java.io.IOException ioe) { 
     System.out.println("I/O error: " + ioe.getMessage()); 
} 

拋出的異常是;

UnsupportedFlavor:應用程序/ x-Java的JVM,局部objectref

任何幫助將不勝感激。

乾杯,

肖恩

+0

你可以修改代碼,以便在'UnsupportedFlavorException'上輸出堆棧跟蹤併發布trace? – AngerClown

回答

1

您需要實現自定義TransferHandler。從the java tutorial,

默認情況下,列表,表和樹不支持drop。 的原因是沒有多種方法來處理這些組件的掉落。 ...雖然Swing無法爲這些組件提供默認實現 ,但Drop的框架就在那裏。你只需要 提供管理 數據的實際導入自定義的TransferHandler。」

如果你導出的樹節點串的只是名字,這應該是很容易的。見的爲休息如果你想導出一個對象,你還需要創建你自己的Transferable實現

+0

我有我自己的TransferHandler類,並且每個樹內的拖放工作正常。當我嘗試將節點從一棵樹拖到另一棵樹時,問題就出現了。數據風格並不是預先提供的,儘管它們都是同一類的不同實例。 – Intern87