昨天在这问的一个clone树的问题,自己写了个递归代码,不行,子节点还是没有。
初学者,代码写的比较糟糕,还请朋友们多指点。
void copyTree(DefaultMutableTreeNode oldNode,DefaultMutableTreeNode newNode)
{
if(oldNode!=null)
{
newNode=new DefaultMutableTreeNode();
newNode.setAllowsChildren(true);
for(int i=0;i<oldNode.getChildCount();i++)
{
DefaultMutableTreeNode node=(DefaultMutableTreeNode) oldNode.getChildAt(i);
newNode.add((DefaultMutableTreeNode)node.clone());
//System.out.println("节点="+node.toString());
copyTree( (DefaultMutableTreeNode) (oldNode.getChildAt(i)),
(DefaultMutableTreeNode)( newNode.getChildAt(i)));
}
}
if(oldNode==null)
{
int k=((oldNode.getParent()).getParent()).getIndex(oldNode.getParent());
oldNode=(DefaultMutableTreeNode)(((oldNode.getParent()).getParent()).getChildAt(k+1));
}
}
打印输出了全部的节点,但新生成的树只有三个父节点,why?
初学者,代码写的比较糟糕,还请朋友们多指点。
void copyTree(DefaultMutableTreeNode oldNode,DefaultMutableTreeNode newNode)
{
if(oldNode!=null)
{
newNode=new DefaultMutableTreeNode();
newNode.setAllowsChildren(true);
for(int i=0;i<oldNode.getChildCount();i++)
{
DefaultMutableTreeNode node=(DefaultMutableTreeNode) oldNode.getChildAt(i);
newNode.add((DefaultMutableTreeNode)node.clone());
//System.out.println("节点="+node.toString());
copyTree( (DefaultMutableTreeNode) (oldNode.getChildAt(i)),
(DefaultMutableTreeNode)( newNode.getChildAt(i)));
}
}
if(oldNode==null)
{
int k=((oldNode.getParent()).getParent()).getIndex(oldNode.getParent());
oldNode=(DefaultMutableTreeNode)(((oldNode.getParent()).getParent()).getChildAt(k+1));
}
}
打印输出了全部的节点,但新生成的树只有三个父节点,why?
解决方案 »
- 关于Java提交get/post请求的
- 在日文系统下使用java连接access数据库,取得其中的中文数据时返回乱码,怎么解决?
- 关于显示 输出的问题!
- jbuider9生成.exe执行文件出错!
- 请问有那位知道在Java中除了用System.exit外有没有哪个语句可以关闭frame窗口的?谢谢。
- DBUnit可否在项目中代替DBHelper来链接数据库做操作数据库
- 新下的JExcelAPI,有一个jxl.jar文件,怎么把这个文件加到JBuilder9中,使程序能用jxl包?
- 工厂模式 哪儿有误?
- 不知道点在哪
- 怎么枚举局域网内的所有的计算机?
- 如何将 ( 转换为 \( 啊?
- 关于TextField.........
从旧的根节点开始, newRoot = oldRoot.clone();
之后递归,copyTree(oldRoot, newRoot)
if (oldRoot != null)
{
for (.....)
....
}
{
newNode.setAllowsChildren(true);
if (oldNode != null) {
for (int i = 0; i < oldNode.getChildCount(); ++i) {
try {
DefaultMutableTreeNode node=(DefaultMutableTreeNode) oldNode.getChildAt(i);
newNode.add((DefaultMutableTreeNode)node.clone());
copyTree( (DefaultMutableTreeNode) (oldNode.getChildAt(i)),
(DefaultMutableTreeNode) (newNode.getChildAt(i)));
}
catch (Exception e) {
e.printStackTrace();
}
}
}
}