我如何知道 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 库设计作斗争。也许最好在事物的数据库数据获取端实现分页构造。
我想使用 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 库设计作斗争。也许最好在事物的数据库数据获取端实现分页构造。