我如何知道 JList 中可以显示的行数?

How can I know the number of rows can be shown in a JList?

我想使用 JList 来显示从数据库中检索到的记录。

因为一个数据库table可能有大量的记录,分页比滚动条好,就是放4个按钮"First","Prev","Next", "Last" 列表下方。

要实现分页,我必须知道一页应该从数据库中请求多少条记录。当window被用户调整大小时,我也需要重新计算"page size"并再次访问数据库。

问题来了,如何知道JList控件可以完整显示多少行呢? (假设要在 JList 中显示的一行只是一个简单的文本行。行的高度相同)。

谢谢!

您可以根据需要在 JList 中显示任意多的行。简直

  • 将JList放入JScrollPane,将JScrollPane加入GUI
  • 设置JList的可见行属性:.setVisibleRowCount(...)
  • 将其 .setPrototypeCellValue(...) 设置为显示足够宽度的值
  • 不要设置其宽度、高度、大小、首选大小或边界

关于:

Because a database table may have a large number of records, paging is better than scroll bar

但这并不是 JLists 构建的工作方式,因此如果您尝试直接在 GUI 中实现它,您将与 GUI 库设计作斗争。也许最好在事物的数据库数据获取端实现分页构造。