有没有办法在我的Jtree中拖放?

时间:2014-11-18 05:55:23

标签: java swing drag-and-drop jtree

我有一个Jtree,我需要拖放Jtree中的节点。这意味着,我应该能够从jtree中的任何位置拖动节点,并且应该能够将它放在同一Jtree的任何位置。

这是我为节点传输编写的代码

    class TreeTransferHandler2 extends TransferHandler 
{
DataFlavor nodesFlavor;
DataFlavor[] flavors = new DataFlavor[1];
DefaultMutableTreeNode[] nodesToRemove;
@Override
protected Transferable createTransferable(JComponent c) {
    JTree tree = (JTree)c;
    Object object = tree.getSelectionPath().getLastPathComponent();
     if (object instanceof DefaultMutableTreeNode)
     {
        DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) object;
         String toString = selectedNode.getUserObject().toString();
         return new StringSelection(toString);
     }
     return null;
}

@Override
public int getSourceActions(JComponent c) {
    return COPY_OR_MOVE;
}

@Override
public String toString() {
    return getClass().getName();
}

}

1 个答案:

答案 0 :(得分:0)

如果你不是在讨论窗口对接:

是的,这很容易。 Netbeans Platform只是Swing的应用程序框架。您可以使用所有标准Swing DnD 技术。

  • 也许您应该阅读像that这样的拖放教程。
  • 要删除应用程序上的文件,您可以阅读this