Я не понимаю, в чем твоя проблема.
DefaultMutableTreeNode
будет использовать метод toString
для объекта пользователя, потому что это имеет смысл. JTree
нужны строки для рисования объектов, поэтому, спрашивая ваш объект, его представление строки в порядке.
Если вам действительно нужно избегать вызова toString
для вашего объекта, вам все равно понадобится способ представить его в виде строки, но вам придется написать собственный MutableTreeNode
:
class MyTreeNode implements MutableTreeNode
{
UserObject yourObject;
MyTreeNode(UserObject yourObject)
{
this.yourObject = yourObject;
}
// implement all needed methods to handle children and so on
public String toString()
{
// then you can avoid using toString
return yourObject.sringRapresentation();
}
}
Но я действительно не вижу смысла делать это ... кроме того, вы можете попробовать расширить DefaultMutableTreeNode
путем переопределения метода toString
, но вам понадобится дополнительная ссылка на ваш объект или некоторые downcasts будет необходимо.
Если вам действительно нужна визуализация, отличная от строки, вам придется написать собственный отрисованный, который реализует TableCellRenderer
.