Reputation: 1118
I have some DefaultMutableTreeNode's. While the programm's running, I can change the text and revalidate it. But if the text is too long, so for example the text "tested", the text will be displayed as "te...".
How do I change this ?
Thanks
Upvotes: 0
Views: 1337
Reputation: 51535
the underlying reason is that the layout of the tree nodes is cached and the cache not updated properly. Might f.i. happen if the node is changed under feet of the model, uncomment the nodeChanged to see the difference
JTree tree = new JTree();
DefaultMutableTreeNode root = (DefaultMutableTreeNode) tree.getModel().getRoot();
int index = 0;
DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
String result = "\n";
Enumeration<?> enumer = root.preorderEnumeration();
while (enumer.hasMoreElements()) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) enumer.nextElement();
String nodeValue = String.valueOf(node.getUserObject());
node.setUserObject(nodeValue + ": " + index++);
//model.nodeChanged(node);
}
The exact reason in your context might vary, no way to tell without an sscce
Upvotes: 1
Reputation: 109823
you have to read tutorial about JTree, and examples how to use TreeCellRenderer
if you'll real question then please update your question and add there the code in SSCCE form
Upvotes: 1