我有一些DefaultMutableTreeNode,当程序运行时,我可以更改文本并重新验证它。但如果文本太长,例如文本“已测试”,则文本将显示为"te...“。
我如何改变这一点?
谢谢
发布于 2011-10-05 22:07:31
你必须阅读如何使用TreeCellRenderer
中的代码
发布于 2011-10-05 22:40:20
潜在的原因是树节点的布局被缓存,缓存没有正确更新。可能是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就无法判断。
https://stackoverflow.com/questions/7662251
复制相似问题