`
747017186
  • 浏览: 331693 次
社区版块
存档分类
最新评论

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

    博客分类:
  • java
 
阅读更多

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);//展开该父节点下面的子节点

}

分享到:
评论

相关推荐

    jtree带复选框的例子

    "jtree带复选框的例子"是一个关于如何在JTree中实现节点选择功能的示例,其中每个节点都有一个复选框供用户进行选择。这种功能在需要用户对树形结构数据进行多选操作的场景下非常实用。 在这个例子中,关键的特性是...

    JTree原生样式设置Demo.rar

    主要代码: JTree tree = new JTree(root); tree.setRootVisible...// 设置节点展开时不采用图标 Enumeration&lt;?&gt; enumeration; // 按前序遍历所有树节点 enumeration = root.preorderEnumeration();

    用Hashtable构建Jtree,使各节点按输入顺序显示

    在给定的示例中,开发者遇到了一个问题,即使用默认的`Hashtable`作为`JTree`的构造参数时,节点并没有按照输入的顺序进行显示。这是因为`Hashtable`在内部使用了哈希表(Hash Table)数据结构,它的插入顺序并不...

    JTree的Doc文档

    6. **Icons**:可以通过设置图标来美化`JTree`,例如,可以为展开的节点、未展开的节点、叶子节点设置不同的图标。 7. **Rendering**:`JTree`使用`TreeCellRenderer`来决定如何显示每个节点,包括文本颜色、字体、...

    JTree组件资料

    - **事件处理**: 需要根据需求注册不同的事件监听器,如`TreeSelectionListener`用于监听节点选择变化,`TreeWillExpandListener`用于在节点展开前执行操作。 - **滚动同步**: 如果`JTree`与`JScrollPane`一起使用...

    JTree的实现代码

    CSS用于美化JTree的外观,包括节点的展开/折叠图标、选中状态、层次间距等。可以使用类选择器为不同状态的节点设置样式。 5. **JavaScript逻辑**: - **数据结构**:树的节点通常用JavaScript对象表示,包含文本...

    treea.rar_jtree_tree java

    4. **事件处理**: `JTree` 支持多种事件,包括节点选择事件、节点展开/折叠事件等。你可以通过添加监听器来响应这些事件,例如 `TreeSelectionListener` 和 `TreeExpansionListener`。 5. **图标和文本**: `JTree` ...

    Swing-JTree.rar_jtree_jtree Demo_swing 树

    5. **显示和操作**:JTree的默认行为是单击节点选中,双击节点展开或折叠。这些行为可以通过设置JTree的`setExpandsSelectedPaths`、`setShowsRootHandles`等方法来改变。 6. **树遍历**:可以使用`...

    JTree用法大全 swing java

    例如,下面的代码展示了如何创建一个`JTree`并自动展开所有节点: ```java public class JTreeFrame extends JFrame { public JTreeFrame() { try { jbInit(); } catch (Exception exception) { exception....

    java编写的GUI树的创立和遍历程序

    7. **SortBinaryTree**:压缩包中的`SortBinaryTree`可能表示一个排序二叉树,这是一种特殊的二叉树,其左子树的所有节点值小于父节点,右子树的所有节点值大于父节点。这暗示程序可能包含排序二叉树的插入和查找...

    JAVA中的Swing的JTree操作的宝典

    查询节点通常涉及遍历树结构,使用`TreeNode`的`children()`方法获取子节点,然后通过比较每个节点的`getUserObject()`返回值来找到目标节点。例如,查找包含特定文本的节点: ```java Enumeration...

    java使用jtree动态实现二叉树

    在`JTree`中,还可以使用`TreeCellRenderer`来自定义节点的显示样式,以及`TreeSelectionListener`来响应用户选择的节点变化。`TreePath`对象用于表示从根节点到特定节点的路径。 综上所述,"java使用jtree动态实现...

    JTree用法及JTree使用经验总结及源码

    JTree用法及JTree使用经验总结(吐血推荐) 1、初始化 2、三个经常使用的取值函数 3、根据node得到path:4、根据Path展开到该节点 5、根据path设定该节点选定 6、选中节点的方法 7、滚动到可见位置 8、给JTree添加右键...

    java中JTree高级编程

    默认情况下,JTree使用DefaultTreeCellRenderer进行节点渲染,但你可以通过实现TreeCellRenderer接口来自定义节点的显示方式,包括图标、文字颜色、字体样式等。这使得你能够为不同类型的节点设置不同的外观,提高...

    swing界面设计之JTree

    - **关于JTree的展开**:控制树节点的展开与折叠,包括默认展开所有节点等操作。 - **如何遍历JTree**:使用递归算法或`Enumeration`接口遍历树中的每个节点。 #### (四) JTree的使用方法 **JTreeDemo.java源程序*...

    文件管理器(Jtree实现)

    用户可以通过展开和折叠节点来探索目录结构,双击节点可以打开目录,单击文件节点可能触发预览或打开文件的操作。 要创建这样一个文件管理器,首先需要做的是构建一个树模型,这通常通过实现`DefaultTreeModel`或者...

    java cs编程 jtree jtable file dom xml GridBagPanel

    通过DocumentBuilder,你可以将XML文档解析为一个可遍历的节点树。每个节点代表XML文档的一部分,可以进行查找、修改、删除等操作。DOM适合处理小型或中型XML文件,因为其将整个文件加载到内存中。 **GridBagLayout...

    jtree和QQ项目\树上实现了弹出聊天窗口

    在`jTree`中,我们可以监听`TreeSelectionEvent`,这是一个事件监听器,当用户选择或取消选择树中的节点时,它会被触发。 接下来,实现弹出聊天窗口的关键在于事件处理。在Java中,我们可以使用`MouseListener`或`...

    CSDN树形控件-静态

    5. **遍历和操作**:你可以通过JTree的遍历方法,如getSelectedNodes()和getExpandedState(),获取当前选中或展开的节点。此外,expandPath()和collapsePath()方法用于控制节点的展开和折叠。 6. **树的遍历**:...

    JTree with JCheckBox的资料整理

    将`JCheckBox`与`JTree`结合使用,可以在树形结构的节点上提供复选框功能,允许用户进行多选操作,这对于配置项、文件夹选择或其他需要多选的场景非常实用。以下是对这个主题的详细讲解: 1. **JTree组件**: `...

Global site tag (gtag.js) - Google Analytics