Как я могу узнать, сколько строк может быть показано в JList? - PullRequest
1 голос
/ 27 апреля 2020

Я хочу использовать JList для отображения записей, извлеченных из базы данных.

Поскольку таблица базы данных может иметь большое количество записей, подкачка лучше, чем полоса прокрутки, что означает размещение 4 кнопок «Первая», «Предыдущая», «Следующая», «Последняя» под списком.

Чтобы реализовать пейджинг, я должен знать, сколько записей мне нужно запросить в базе данных для одной страницы. Когда пользователь изменяет размер окна, мне также необходимо пересчитать «размер страницы» и снова получить доступ к базе данных.

Вопрос в том, как узнать, сколько строк можно полностью отобразить в элементе управления JList. ? (предположим, что строка, отображаемая в JList, представляет собой простую текстовую строку. Строки имеют одинаковую высоту).

Спасибо!

1 Ответ

1 голос
/ 27 апреля 2020

Вы можете отобразить столько строк, сколько необходимо в JList. Просто

  • Поместите JList в JScrollPane и добавьте JScrollPane в GUI
  • Установите свойство видимой строки JList: .setVisibleRowCount(...)
  • Установите его .setPrototypeCellValue(...) для значения, которое показывает адекватную ширину
  • Do not установите его ширину, высоту, размер, предпочтительный размер или границы

Относительно:

Поскольку таблица базы данных может иметь большое количество записей, подкачка лучше, чем полоса прокрутки

Но JLists не были созданы для работать, и поэтому вы будете бороться с дизайном библиотеки GUI, если попытаетесь реализовать это непосредственно в GUI. Возможно, лучше реализовать конструкцию подкачки на стороне сбора данных в базе данных.

...