• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 333
  • Last Modified:

How to get a root from a JTree?


I wanted to get all leafs of a jTree. I made it like this, but that works only, if I have already the root.

DefaultMutableTreeNode t2;
String AllLeafs = "";

t2 = root;

while (t2 != null)
{ t2 = t2.getNextNode();
  { if (t2.isLeaf())
    { AllLeafs += "/" + t2.toString();
  catch (Exception event)
  { t2 = null;

Then I wanted to get the root like this,
but there is a problem with getModel: it doesn´t get the DefaultTreeModel, but a TreeModel, and from TreeModel I don´t get a DefaultMutableTreeNode (the type of t2).

DefaultTreeModel treeMod = (DefaultTreeModel) jTree1.getModel();
t2 = treeMod.getRoot();

The second question is, how to find out, when my tree is finished? (I used the try-catch-method, but I would be interested in knowing the "official" solution.

Thanks so much in advance!!!
1 Solution
to your second qn, the tree is finished when getNextNode() is null... so just test for it....

the java API states that getNextNode is inefficient for traversal... u should get a depthFirstEnumeration of the tree and then traverse that....

for ur first qn, y don't u just traverse the tree yourself? eg. (doesn't use DefaultMutableTreeNode)... say t is part of the tree...

Stack s = new Stack();
TreeNode root = t;
TreeNode cur;
Enumeration e;
String AllLeafs = "";

while ((cur = root.getParent())!=null) root = cur;

while (!s.empty()) {
   cur = (TreeNode) s.pop();
   if (cur.isLeaf()) {
   } else {
      e = cur.children();
      while (e.hasMoreElements()) s.push(e.nextElement());

// done.
Visit this site for an example in JTree...

Hope this info is useful to u...


Featured Post

The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now