jTree的遍历所有节点,默认选择节点,默认展开节点

jtree遍历所有节点:

           public static void visitAllNodes2(JTree tree) {

      TreeNode root = (TreeNode)tree.getModel().getRoot();//取得tree的根节点

      visitAllNodes(root);

  }

 

  public static void visitAllNodes(TreeNode node) {

      // node is visited exactly once

      if (node.getChildCount() >= 0) {//判断是否有子节点

          for (Enumeration e=node.children(); e.hasMoreElements(); ) {

              TreeNode n = (TreeNode)e.nextElement();

              System.out.println(n);

              visitAllNodes(n);//若有子节点则再次查找

          }

      }

  }

 

 

jtree默认选中节点,这里有两个方法,根本原因是jtree在构造的时候所选择的参数不同造成的。

第一个方法:利用DefaultTreeModel 来构造的tree

          DefaultTreeModel xx=(DefaultTreeModel)example5.getModel();//取得当前的树的模式,其中example5是jtree的对象

  

  TreePath path=new TreePath(xx.getPathToRoot(Lightgray));//new一个treepath对象,取出节点对象是Lightgray的路径path,Lightgray对象的类型是DefaultTreeModel 

  

  example5.setSelectionPath(path);//用tree直接设置路径即可

 

 

第二种方法:利用DefaultMutableTreeNode构造tree

  TreePath path=new TreePath(Lightgray.getPath());//lightgray是DefaultMutableTreeNode的对象,只用取得一个TreeNote的一个数组,直接new成一个path对象

 

   example5.setSelectionPath(path);//直接设置取得即可

 

 

jtree默认展开所有节点:

/**

 * tree默认节点展开

 * @param tree

 * @param parent

 */

private static void expandTree(JTree tree, TreePath parent) {

   TreeNode node = (TreeNode) parent.getLastPathComponent();

   if (node.getChildCount() >= 0) {

      for (Enumeration<?> e = node.children(); e.hasMoreElements();) {

          TreeNode n = (TreeNode) e.nextElement();

          TreePath path = parent.pathByAddingChild(n);

          expandTree(tree, path);//展开节点递归

      }

   }

   tree.expandPath(parent);//展开该父节点下面的子节点

}

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值