两个JTree之间的DataFlavors(Java)

时间:2011-08-03 10:58:15

标签: java swing drag-and-drop jtree

有人可以帮助我从一棵树到另一棵树允许DataFlavor吗?我一直在关注一些教程,并在两棵树中进行拖放工作,但我希望能够在它们之间进行拖动。

这是在我重写的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:application / x-java-jvm-local-objectref

非常感谢任何帮助。

干杯,

肖恩

1 个答案:

答案 0 :(得分:1)

您需要实施自定义TransferHandler。来自the java tutorial

  

默认情况下,列表,表和树不支持删除。的原因   这就是没有通用的方法来处理这些问题   组件。 ...虽然Swing无法提供默认实现   对于这些组件,drop的框架就在那里。你只需要   提供管理实际导入的自定义TransferHandler   数据“。

如果您只是将树节点的名称导出为字符串,这应该非常简单。有关如何执行此操作的信息,请参阅该教程的其余部分。如果您尝试导出对象,则还需要创建自己的Transferable实现。