selectedNode1.isRoot()的值是否为true?
selectedNode1.getChildCount()的值是否大于零?
将结果显示后看看

解决方案 »

  1.   

    单步跟踪一下下面那两个条件就知道了。selectedNode1.isRoot()i < selectedNode1.getChildCount()
    自己试试吧。
      

  2.   

    temp = selectedNode1.getChildCount();
    //估計 temp 的值為1,你可以跟蹤查看一下﹗
      

  3.   

    你的根节点只有两个孩子        if (selectedNode1.isRoot()){//左边选中根节点才执行以下语句
              // 循环不执行WHY?
              int i = 0;
              while (i < selectedNode1.getChildCount()) {
    //每循环一次,因为你把节点移走了,所以每次selectedNode1.getChildCount()都会比上次少一个,两个节点就循环一次,三个节点循环两次 
    //i在增加,selectedNode1.getChildCount()在减少,我猜你误以为selectedNode1.getChildCount()是不变的了            DefaultMutableTreeNode node1 = (DefaultMutableTreeNode)selectedNode1.getChildAt(i);
                model2.insertNodeInto(node1, selectedNode2, selectedNode2.getChildCount()-1);
                System.out.println(i);
                i++;
              }
            }