When using a JTree, a "user object" of a DefaultMutableTreeNode can be set. This can be of any kind, but to display it, its toString() value is used. This is not what I need.
How can I change the way a user object is displayed?
NOTE: My user object has to be something different than a String to be able to maintain mapping between the tree and the user objects.
I don't get what's your problem.
The
DefaultMutableTreeNodewill use thetoStringmethod on the user object because it makes sense. TheJTreeneeds strings to draw objects so asking to your object its string rapresentation is ok.If you really need to avoid calling
toStringon your object you will need a way to provide a string rapresentation of it anyway, but you will have to write your ownMutableTreeNode:But I really don't see the point of doing this.. in addition you can try extending the
DefaultMutableTreeNodeby overridingtoStringmethod, but you will need an additional reference to your object or some downcasts will be needed.If you really need a different visualization than a string you will have to write your own rendered that implements
TableCellRenderer.