Если этот объект выделен для JTree и не используется где-либо еще, самый простой способ - переопределить метод toString()
и вернуть имя из этого метода:
@Override
public String toString() {
return this.nodeName;
}
Если вам нужен другой метод toString (), который можно было бы использовать для предоставления дополнительной информации, например, при отладке, тогда установите пользовательский TreeCellRenderer
для дерева. Этот пользователь может просто расширить DefaultTreeCellRenderer и переопределить следующий метод:
@Override
public Component getTreeCellRendererComponent(JTree tree,
Object value,
boolean sel,
boolean expanded,
boolean leaf,
int row,
boolean hasFocus) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
NodeObject nodeObject = (NodeObject) node.getUserObject();
return super.getTreeCellRendererComponent(tree,
nodeObject.getName(),
sel,
expanded,
leaf,
row,
hasFocus);
}
EDIT:
Третье решение, упомянутое aterai в комментариях, заключается в создании подкласса JTree и переопределении метода convertValueToText()
, который вызывает средство визуализации по умолчанию. См. http://docs.oracle.com/javase/tutorial/uiswing/components/tree.html для более подробной информации о деревьях.