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 then 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.