有人可以帮助我从一棵树到另一棵树允许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
非常感谢任何帮助。
干杯,
肖恩
答案 0 :(得分:1)
您需要实施自定义TransferHandler
。来自the java tutorial,
默认情况下,列表,表和树不支持删除。的原因 这就是没有通用的方法来处理这些问题 组件。 ...虽然Swing无法提供默认实现 对于这些组件,drop的框架就在那里。你只需要 提供管理实际导入的自定义TransferHandler 数据“。
如果您只是将树节点的名称导出为字符串,这应该非常简单。有关如何执行此操作的信息,请参阅该教程的其余部分。如果您尝试导出对象,则还需要创建自己的Transferable
实现。