Java Swing JTree TreeModel - как сделать ленивую инициализацию - PullRequest
3 голосов
/ 01 мая 2011

У меня в приложении Swing есть JTree для отображения списка данных long (режим int tree).

проблема в том, что TreeModel загружает все элементы во время инициализации, и мне не нужно загружать их все. на одном экране отображаются только 100 из них, поэтому нет смысла загружать тысячи данных, чтобы отображать только 100 из них на одном экране.

Вопрос: есть ли способ выполнить ленивую инициализацию в TreeModel и извлекать данные при необходимости?

Спасибо всем

Ответы [ 2 ]

3 голосов
/ 01 мая 2011

TreeWillExpandListener См. Например this

1 голос
/ 01 мая 2011

Я предполагаю, что вы используете DefaultTreeModel.

Я решил эту проблему с помощью пользовательской TreeModel . Это может показаться сложным, но как только вы попадаете в это, вы видите, что это не так уж плохо. У вас есть только 8 методов для реализации, и большинство из них довольно тривиальны, если у вас уже есть древовидная структура данных.

Основным преимуществом этого подхода является то, что вы получаете полный контроль над базовой моделью.

...