DefaultMutableTreeNode-Text слишком длинный? - PullRequest
0 голосов
/ 05 октября 2011

У меня есть несколько DefaultMutableTreeNode's. Пока программа работает, я могу изменить текст и подтвердить его. Но если текст слишком длинный, например, текст «проверен», текст будет отображаться как «te ...».

Как мне это изменить?

Спасибо

Ответы [ 2 ]

1 голос
/ 05 октября 2011

Основная причина заключается в том, что расположение узлов дерева кэшируется, а кэш не обновляется должным образом. Может быть, я произойдет, если узел изменяется под ногами модели, раскомментируйте 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

1 голос
/ 05 октября 2011
  • вы должны прочитать учебник о JTree и примеры, как использовать TreeCellRenderer

  • если вы 'Если у вас возникнет реальный вопрос, пожалуйста, обновите ваш вопрос и добавьте туда код в SSCCE форме

...