我需要创建一个使用DefaultMutableTreeNode创建的现有树的副本。[编辑] 所以,我试图将现有的根节点分配给另一个DefaultMutableTreeNode.Ex:
DefaultMutableTreeNode ABC = new DefaultMutableTreeNode(null);
DefaultMutableTreeNode ABCcopy = new DefaultMutableTreeNode(null);
ABCcopy=ABC;
但这并没有给我太多结果。 请指教。
答案 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() ?