How to Get Root Path in JTree


J

Jason Cavett

I am currently adding nodes a JTree. I want the user to have the
ability to add a node to the root node which is *not* visible (AKA - I
had the root node). Basically, this means that when the user has no
nodes selected and they try to add a new node (via a menu), it should
automatically go to the root node.

The problem I'm having is that although I can get the path for the
root, DefaultTreeModel *always* throws an exception because of this
method...

--
public void nodesWereInserted(TreeNode node, int[] childIndices) {
if(listenerList != null && node != null && childIndices != null
&& childIndices.length > 0) {
int cCount = childIndices.length;
Object[] newChildren = new Object[cCount];

for(int counter = 0; counter < cCount; counter++)
newChildren[counter] = node.getChildAt(childIndices[counter]);
fireTreeNodesInserted(this, getPathToRoot(node), childIndices,
newChildren);
}
}
--


Basically, what happens is that, when the DefaultTreeNode tries to
fire that a new node was inserted, it is still holding the "path" to
the root node. Since the root node isn't showing, that path's row
value is -1.

Is there any way to add a new node to the root node, even though that
root node is not visible?


Thanks.
 
Ad

Advertisements

M

Michael Rauscher

Jason said:
I am currently adding nodes a JTree. I want the user to have the
ability to add a node to the root node which is *not* visible (AKA - I
had the root node). Basically, this means that when the user has no
nodes selected and they try to add a new node (via a menu), it should
automatically go to the root node.

The problem I'm having is that although I can get the path for the
root, DefaultTreeModel *always* throws an exception because of this
method...

Please provide the exception.

Bye
Michael
 
Ad

Advertisements

J

Jason Cavett

Please provide the exception.

Bye
Michael

Thanks for the response. After working with my code a bit more, I
found a much more elegant solution which didn't require any of this.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top