public interface TreeModel
JTree.
JTree and its related classes make extensive use of TreePaths for identifying nodes in the TreeModel. If a TreeModel returns the same object, as compared by equals, at two different indices under the same parent than the resulting TreePath objects will be considered equal as well. Some implementations may assume that if two TreePaths are equal, they identify the same node. If this condition is not met, painting problems and other oddities may result. In other words, if getChild for a given parent returns the same Object (as determined by equals) problems may result, and it is recommended you avoid doing this.
Similarly JTree and its related classes place TreePaths in Maps. As such if a node is requested twice, the return values must be equal (using the equals method) and have the same hashCode.
For further information on tree models, including an example of a custom implementation, see How to Use Trees in The Java Tutorial.
TreePath
| Modifier and Type | Method and Description |
|---|---|
void |
addTreeModelListener(TreeModelListener
Adds a listener for the
TreeModelEvent posted after the tree changes.
|
Object |
getChild(Object
Returns the child of
parent at index
index in the parent's child array.
|
int |
getChildCount(Object
Returns the number of children of
parent.
|
int |
getIndexOfChild(Object
Returns the index of child in parent.
|
Object |
getRoot()
Returns the root of the tree.
|
boolean |
isLeaf(Object
Returns
true if
node is a leaf.
|
void |
removeTreeModelListener(TreeModelListener
Removes a listener previously added with
addTreeModelListener.
|
void |
valueForPathChanged(TreePath
Messaged when the user has altered the value for the item identified by
path to
newValue.
|
ObjectgetRoot()
null only if the tree has no nodes.
ObjectgetChild(Object parent, int index)
parent at index
index in the parent's child array.
parent must be a node previously obtained from this data source. This should not return
null if
index is a valid index for
parent (that is
index >= 0 && index < getChildCount(parent)).
parent - a node in the tree, obtained from this data source
parent at index
index
int getChildCount(Objectparent)
parent. Returns 0 if the node is a leaf or if it has no children.
parent must be a node previously obtained from this data source.
parent - a node in the tree, obtained from this data source
parent
boolean isLeaf(Objectnode)
true if
node is a leaf. It is possible for this method to return
false even if
node has no children. A directory in a filesystem, for example, may contain no files; the node representing the directory is not a leaf, but it also has no children.
node - a node in the tree, obtained from this data source
node is a leaf
void valueForPathChanged(TreePathpath, Object newValue)
path to
newValue. If
newValue signifies a truly new value the model should post a
treeNodesChanged event.
path - path to the node that the user has altered
newValue - the new value from the TreeCellEditor
int getIndexOfChild(Objectparent, Object child)
parent or
child is
null, returns -1. If either
parent or
child don't belong to this tree model, returns -1.
parent - a node in the tree, obtained from this data source
child - the node we are interested in
child or
parent are
null or don't belong to this tree model
void addTreeModelListener(TreeModelListenerl)
TreeModelEvent posted after the tree changes.
l - the listener to add
removeTreeModelListener(javax.swing.event.TreeModelListener)
void removeTreeModelListener(TreeModelListenerl)
addTreeModelListener.
l - the listener to remove
addTreeModelListener(javax.swing.event.TreeModelListener)