Проблема с Java: нужен отсортированный JList для представления таблицы базы данных - PullRequest
0 голосов
/ 13 мая 2009

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

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

1 Ответ

2 голосов
/ 14 мая 2009

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

...