The Java Developers Almanac 1.4


Order this book from Amazon.

   
Home > List of Packages > javax.swing.tree  [15 examples] > Nodes  [6 examples]

e1023. Visiting All the Nodes in a JTree Component

    // Create tree
    JTree tree = new JTree();
    
    // Add the nodes...
    
    // Visit all nodes
    visitAllNodes(tree);
    
    // Visit only expanded nodes
    visitAllExpandedNodes(tree);
    
    // Traverse all nodes in tree
    public void visitAllNodes(JTree tree) {
        TreeNode root = (TreeNode)tree.getModel().getRoot();
        visitAllNodes(root);
    }
    public void visitAllNodes(TreeNode node) {
        // node is visited exactly once
        process(node);
    
        if (node.getChildCount() >= 0) {
            for (Enumeration e=node.children(); e.hasMoreElements(); ) {
                TreeNode n = (TreeNode)e.nextElement();
                visitAllNodes(n);
            }
        }
    }
    
    // Traverse all expanded nodes in tree
    public void visitAllExpandedNodes(JTree tree) {
        TreeNode root = (TreeNode)tree.getModel().getRoot();
        visitAllExpandedNodes(tree, new TreePath(root));
    }
    public void visitAllExpandedNodes(JTree tree, TreePath parent) {
        // Return if node is not expanded
        if (!tree.isVisible(parent)) {
            return;
        }
    
        // node is visible and is visited exactly once
        TreeNode node = (TreeNode)parent.getLastPathComponent();
        process(node);
    
        // Visit all children
        if (node.getChildCount() >= 0) {
            for (Enumeration e=node.children(); e.hasMoreElements(); ) {
                TreeNode n = (TreeNode)e.nextElement();
                TreePath path = parent.pathByAddingChild(n);
                visitAllExpandedNodes(tree, path);
            }
        }
    }

 Related Examples
e1024. Finding a Node in a JTree Component
e1025. Adding a Node to a JTree Component
e1026. Removing a Node to a JTree Component
e1027. Converting a Node in a JTree Component to a TreePath
e1028. Converting All Nodes in a JTree Component to a TreePath Array

See also: Events    Layout    Node Expansion    Selections   


© 2002 Addison-Wesley.