#java #swing #jtree
#java #качать #jtree
Вопрос:
Скажем, мое JTree состоит из следующих узлов.
new DefaultMutableTreeNode("DisplayThisTextOnly {donotdisplaystringsinhere}");
как я могу скрыть тексты между и включая {} от отображения с помощью TreeCellRenderer
?
когда я выбираю этот узел, я хочу иметь возможность снова извлекать всю строку.
"DisplayThisTextOnly {donotdisplaystringsinhere}"
По сути, моя цель — иметь возможность извлекать дополнительные данные из данного узла дерева без необходимости setObject()
Комментарии:
1. Вы имеете в виду, что хотите получить дополнительные данные из дерева, проанализировав текстовую строку ??! Не делайте этого. Это безумие. Просто вызовите setObject() для DefaultMutableTreeNode и вызовите GetObject(), чтобы вернуть ваш объект. Это сэкономит вам много времени. Вы создали эти объекты, чтобы помочь вам эффективно организовать свои данные. Тогда такой синтаксический анализ выбрасывает всю вашу работу по созданию этих объектов из окна. Спасите себя от себя.
2. Если вам нужно, чтобы ваш тринод хранил более одного объекта, поместите их в контейнер и сохраните контейнер как объект.
Ответ №1:
Создайте пользовательский рендерер и удалите текст, который вы не хотите видеть. В разделе из руководства по Swing о том, как использовать деревья, есть пример рендеринга, который поможет вам начать.