How to Get Root Path in JTree

Discussion in 'Java' started by Jason Cavett, Feb 7, 2007.

  1. Jason Cavett

    Jason Cavett Guest

    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

    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,

    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?

    Jason Cavett, Feb 7, 2007
    1. Advertisements

  2. Please provide the exception.

    Michael Rauscher, Feb 8, 2007
    1. Advertisements

  3. Jason Cavett

    Jason Cavett Guest

    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.
    Jason Cavett, Feb 8, 2007
    1. Advertisements

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 (here). After that, you can post your question and our members will help you out.