Interface TreeModel
- All Known Implementing Classes:
DefaultTreeModel
public interface TreeModel
The model used by JTree
.
JTree
and its related classes make extensive use of TreePath
s 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 TreePath
s 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 TreePath
s in Map
s. 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.
- See Also:
TreePath
Method Summary
Modifier and Type | Method | Description |
---|---|---|
void | addTreeModelListener(TreeModelListener l) | Adds a listener for the |
Object | getChild(Object parent,
int index) | Returns the child of |
int | getChildCount(Object parent) | Returns the number of children of |
int | getIndexOfChild(Object parent,
Object child) | Returns the index of child in parent. |
Object | getRoot() | Returns the root of the tree. |
boolean | isLeaf(Object node) | Returns |
void | removeTreeModelListener(TreeModelListener l) | Removes a listener previously added with |
void | valueForPathChanged(TreePath path,
Object newValue) | Messaged when the user has altered the value for the item identified by |
Method Detail
getRoot
Object getRoot()
Returns the root of the tree. Returns null
only if the tree has no nodes.
- Returns:
- the root of the tree
getChild
Object getChild(Object parent, int index)
Returns the child of 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
)).
- Parameters:
-
parent
- a node in the tree, obtained from this data source -
index
- index of child to be returned - Returns:
- the child of
parent
at indexindex
getChildCount
int getChildCount(Object parent)
Returns the number of children of 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.
- Parameters:
-
parent
- a node in the tree, obtained from this data source - Returns:
- the number of children of the node
parent
isLeaf
boolean isLeaf(Object node)
Returns 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.
- Parameters:
-
node
- a node in the tree, obtained from this data source - Returns:
- true if
node
is a leaf
valueForPathChanged
void valueForPathChanged(TreePath path, Object newValue)
Messaged when the user has altered the value for the item identified by path
to newValue
. If newValue
signifies a truly new value the model should post a treeNodesChanged
event.
- Parameters:
-
path
- path to the node that the user has altered -
newValue
- the new value from the TreeCellEditor
getIndexOfChild
int getIndexOfChild(Object parent, Object child)
Returns the index of child in parent. If either parent
or child
is null
, returns -1. If either parent
or child
don't belong to this tree model, returns -1.
- Parameters:
-
parent
- a node in the tree, obtained from this data source -
child
- the node we are interested in - Returns:
- the index of the child in the parent, or -1 if either
child
orparent
arenull
or don't belong to this tree model
addTreeModelListener
void addTreeModelListener(TreeModelListener l)
Adds a listener for the TreeModelEvent
posted after the tree changes.
- Parameters:
-
l
- the listener to add - See Also:
removeTreeModelListener(javax.swing.event.TreeModelListener)
removeTreeModelListener
void removeTreeModelListener(TreeModelListener l)
Removes a listener previously added with addTreeModelListener
.
- Parameters:
-
l
- the listener to remove - See Also:
addTreeModelListener(javax.swing.event.TreeModelListener)