繁体   English   中英

复制一个Jtree

[英]Duplicating a Jtree

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

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

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

在Java中(深层)复制/克隆对象的最简单方法是对它进行序列化/反序列化。

如果您同时使用这两个树仅用于显示某些层次结构数据并且不修改节点,那么最简单的方法是:

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

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

这是一个例子:

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();
}

怎么样

Tree newTree = existingTree.clone() ?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM