У меня есть мастер с несколькими экранами, где пользователь должен заполнить свои данные для дальнейшей обработки. На втором экране у меня есть радиогруппа с тремя переключателями, которые позволяют добавлять дополнительные элементы. Чтобы продолжить, пользователь должен выбрать один из них. Когда пользователь выбирает третью кнопку, выбирается только один выбор JTree
, заполненный данными, и пользователь должен выбрать из него вариант. Затем пользователь должен нажать «Далее», чтобы перейти к следующему экрану. Опция, которую он выбрал, хранится как TreePath
. Все идет нормально.Как получить JTree расширен?
Моя проблема заключается в следующем. Если пользователь хочет вернуться со следующего экрана на экран с помощью JTree
, я хочу предоставить его с JTree
, расширенным до выбранного варианта и выделения опции. Тем не менее, что бы я ни пытался сделать для этого (любые комбинации expandPath
, scrollPathToVisible
, addSelectionPath
, makeVisible
) всегда предоставляет мне свернутое дерево. Я пытаюсь расширить как листья, так и узлы. Мой код выглядит следующим образом:
rbProcessJTree.setSelected(isProcessJTree());
if (null != getSelectedTablePath()){
trTables.addSelectionPath(getSelectedTablePath());
trTables.expandPath(getSelectedTablePath());
trTables.scrollPathToVisible(getSelectedTablePath());
}
Когда setSelected()
называется, изменение состояния слушателя вызывается, что позволяет JTree
. Модель загружается во время инициализации формы.
Каждый раз, когда я переключаюсь между экранами, я сохраняю входные данные с предыдущего экрана и удаляю его. Затем, когда мне нужно открыть предыдущий экран, я сохраняю данные со следующего экрана, удаляю его, загружаю данные на этот экран и показываю. Поэтому каждый раз, когда экран генерируется с нуля.
Не могли бы вы объяснить, какая последовательность операций должна быть выполнена, чтобы получить JTree
, развернутый во вновь созданной форме, с загруженной моделью данных и выбором пути?
Здравствуйте Dzmitry Железниченко, Вы были в состоянии получить ответ на свой вопрос? Я столкнулся с той же проблемой, я разместил ее здесь
Просьба сообщить. – ShamsR