复制Jtree

时间:2009-09-29 12:46:02

标签: java tree

我需要创建一个使用DefaultMutableTreeNode创建的现有树的副本。[编辑] 所以,我试图将现有的根节点分配给另一个DefaultMutableTreeNode.Ex:

DefaultMutableTreeNode ABC = new DefaultMutableTreeNode(null);
DefaultMutableTreeNode ABCcopy = new DefaultMutableTreeNode(null);
ABCcopy=ABC;

但这并没有给我太多结果。 请指教。

4 个答案:

答案 0 :(得分:1)

在java中(深度)复制/克隆对象的最简单方法是序列化/反序列化。

答案 1 :(得分:1)

如果您只使用两棵树来显示某些分层数据而不修改节点,那么最简单的方法就是这样:

JTree new_tree = new JTree(old_tree.getModel());

如果您计划修改其中一棵树,最好的方法是克隆。

答案 2 :(得分:0)

以下是一个例子:

FileOutputStream fos = null;
ObjectOutputStream out = null;
try {
   fos = new FileOutputStream("somefilename");
   out = new ObjectOutputStream(fos);
   out.writeObject(ABC);
   out.close();
} catch(IOException ex) {
  ex.printStackTrace();
}

FileInputStream fis = null;
ObjectInputStream in = null;
try {
   fis = new FileInputStream("somefilename");
   in = new ObjectInputStream(fis);
   ABCCopy = (DefaultMutableTreeNode)in.readObject();
   in.close();
} catch(IOException ex) {
   ex.printStackTrace();
} catch(ClassNotFoundException ex) {
   ex.printStackTrace();
}

答案 3 :(得分:-1)

怎么样

Tree newTree = existingTree.clone() ?