2013-05-13 2 views
1

Я применил outline view в моем приложении, которое состоит из 200 узлов. Как я могу искать определенный узел и расширять его?Как искать узел в виде контура в swing

Я также посмотрел breadthFirstEnumeration() и depthFirstEnumeration() метод DefaultMutableTreeNode, но не смог найти эквивалентный метод в схеме.

ответ

2

Этот подход зависит от модели TreeModel, используемой для создания вашего OutlineModel. В приведенном FileTreeModelgetRoot() возвращает произвольное File, представляющее корень поддерева в иерархической файловой системе. Это поддерево можно найти рекурсивно, как показано на рисунке here. Вместо того, чтобы печатать результаты, вы будете накапливать экземпляры File, представляющие путь в массив. Этот массив будет использоваться для построения TreePath. При таком treePath вы можете обнаружить соответствующий узел способом, аналогичным показанному here.

outline.expandPath(treePath); 
outline.scrollRectToVisible(getPathBounds(treePath)); 
+0

Большое спасибо за предоставленную мне идею. Хотя я не использую FileTreeModel, я использую свою собственную модель, и я буду реализовывать ее на моем пути. еще раз спасибо – Ashish

 Смежные вопросы

  • Нет связанных вопросов^_^