Как мне получить и выбрать treeItem, который не виден по индексу в JavaFX?

1

Я сохраняю индекс текущего select treeItem с помощью treeView.getSelectionModel().getSelectedIndex(); , Моя цель состоит в том, чтобы иметь возможность повторно выбирать этот элемент treeView после восстановления дереваView. Однако в API не существует какого-либо метода, который позволит мне получить и в конечном итоге выбрать элемент treeView, который не находится под расширенным узлом.

Я пробовал treeView.getSelectionModel().select(index); но похоже, что они работают только при росте родителя treeItem. API ничего не говорит о том, что элемент, который должен быть выбран, должен находиться под узлом, который был расширен. Я также попробовал treeView.getTreeItem(index).getParent().setExpanded(true); для расширения родительского узла элемента, но это также, похоже, работает только в том случае, если элемент видим и находится под расширенным узлом.

Поэтому мой вопрос: как сохранить текущий выбранный treeItem и повторно выбрать его, когда деревоView будет восстановлено.

  • 0
    Поскольку это дерево, я предполагаю, что вы сможете сохранить путь (с некоторым способом идентификации всех родителей вплоть до корня), а затем развернуть его по мере необходимости и повторно выбрать нужный узел.
Теги:
javafx
javafx-8
treeview
javafx-2

1 ответ

2

Попробуйте это сэр,

int i;
i = treeView.getSelectionModel().getSelectedIndex();
treeView.getTreeItem(i).setExpanded(true);
treeView.getSelectionModel().select(i);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню