【问题标题】:DefaultMutableTreeNode-Text is too long?DefaultMutableTreeNode-Text 太长?
【发布时间】:2011-10-05 13:44:13
【问题描述】:

我有一些 DefaultMutableTreeNode。 在程序运行时,我可以更改文本并重新验证它。 但是如果文本太长,比如文本“tested”,文本会显示为“te...”。

如何更改?

谢谢

【问题讨论】:

  • 如果您正确更改文本,即确保通知 model 文本应以全宽显示,前提是树宽足够大

标签: java swing jtree


【解决方案1】:

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 谢谢,但我的问题是单元格宽度
    • 没有写我自己的单元格渲染器,谢谢!
    猜你喜欢
    • 2020-11-26
    • 1970-01-01
    • 2013-07-03
    • 2017-11-24
    • 2019-07-11
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多