我有一个JList
位于JscrollPane
内,我正在尝试对数据进行一些分页,当用户滚动时,它会将适当数量的数据加载到屏幕上。问题是我需要弄清楚我需要从文件中缓冲多少数据,唯一的方法就是弄清楚需要在屏幕上显示多少数据。有没有人知道如何获取可以显示在JList
之外的数字或行和列?也正在用JList
和JScrollPane
分页,或者是否有其他方法更适合在滚动面板中显示大量数据?
由于
答案 0 :(得分:3)
您可以使用getFirstVisibleIndex
的{{1}}和getLastVisibleIndex
方法计算可见时显示的项目数。
如果滚动窗格中视口的大小发生更改,则可见行的数量也会更改。因此,如果组件可调整大小,则可能需要监听组件大小的更改。
答案 1 :(得分:2)
在JList上执行getModel()
以获取基础ListModel
,然后在其上调用getSize()
。
编辑:哦,如果模型内容由具有多列的数据结构组成,则调用大小上存在的任何合适的方法。您可以使用getElementAt(int index)
获得一行。如果列数可变,可能还需要更多工作。