DefaultMutableTreeNode-Text太长了?

时间:2011-10-05 13:44:13

标签: java swing jtree

我有一些DefaultMutableTreeNode。 程序运行时,我可以更改文本并重新验证它。 但是如果文本太长,例如文本“已测试”,则文本将显示为“te ...”。

如何更改此内容?

由于

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

根本原因是树节点的布局被缓存并且缓存未正确更新。可能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无法判断