Проблема с Java:Нужен отсортированный JList для представления таблицы базы данных.

StackOverflow https://stackoverflow.com/questions/860086

Вопрос

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

Есть ли хороший способ сделать это?Или мне придется придумать какой-то неуклюжий хак, чтобы позволить JList «прокручивать» динамически запрашиваемые фрагменты данных или что-то в этом роде?

Это было полезно?

Решение

Твой JList's ListModel отвечает за представление резервных данных в виде упорядоченного списка. ListModelметоды будут вызываться JList из потока пользовательского интерфейса (событие AWT), поэтому его производительность должна быть довольно хорошей. Вот почему большинство реализаций имеют ListModelсохраняет данные в памяти.Я полагаю, вы могли бы реализовать ListModel с вашей базой данных в качестве резервных данных.Вы, скорее всего, продлите AbstractListModel чтобы получить регистрацию слушателя и реализовать getElementAt(int) и getSize(). getElementAt тогда он будет отвечать за получение объекта для определенного индекса.Имейте в виду, что JList позвоню getElementAt много раз для разных индексов, поэтому вы можете кэшировать результаты.В зависимости от того, какой объем данных вы кэшируете, вы можете просто получить весь набор данных из базы данных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top