DefaultMutableTreeNode-文字太长?
问题描述:
我有一些DefaultMutableTreeNode的。 在程序运行时,我可以更改文本并重新验证它。 但是,如果文本太长,例如文本“测试”,文本将显示为“te ...”。DefaultMutableTreeNode-文字太长?
我该如何改变?
感谢
答
其根本原因在于树节点的布局被缓存,并且缓存未更新prop erly。可能f.i.如果节点是根据模型的脚改变发生,取消注释nodeChanged看出差别
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);
}
在上下文的确切原因可能会有所不同,没有办法告诉没有SSCCE
如果你正在改变正确的文本,即确保_model_通知文本应该出现全宽,只要树的宽度足够大 – kleopatra