如何获取 JList 中可见的列数和行数?
我有一个位于 JscrollPane
内部的 JList
,我试图对数据进行一些分页,其中当用户滚动时,它会将适当数量的数据加载到屏幕。问题是我需要计算出需要从文件中缓冲多少数据,而唯一的方法就是计算出需要在屏幕上显示多少数据。有谁知道如何获取可以从我的 JList
中显示的数字或行和列?另外,使用 JList
和 JScrollPane
进行分页是一个好主意,还是有其他方法更适合在滚动面板中显示大量数据?
谢谢
I have a JList
that is inside of a JscrollPane
and I am trying to do some pagination on the data, in which as the user scrolls it loads the appropriate amount of data onto the screen. The problem is I need to figure out how much data I need to buffer out of my file and the only way to do that is to figure out how much data needs to be displayed on the screen. Does anyone have an idea of how to get the number or rows and columns that can be displayed out of my JList
? Also is doing pagination with a JList
and a JScrollPane
a good idea or is there some other approach that would be better suited for displaying a ton of data in a scroll panel?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用
JList
的getFirstVisibleIndex
和getLastVisibleIndex
方法来计算其可见时显示的项目数。如果滚动窗格中视口的大小发生变化,则可见行数也会发生变化。因此,如果组件的大小可以调整,您可能需要监听组件大小的变化。
You can use
getFirstVisibleIndex
andgetLastVisibleIndex
methods ofJList
to calculate number of items it displays when visible.If size of viewport in scroll pane changes then the number of visible rows will also change. So if the component is resizable you may need to listen to the change in the component size.
在 JList 上执行
getModel()
以获取底层ListModel
,然后对其调用getSize()
。编辑:哦,如果模型内容由具有多列的数据结构组成,请调用该数据结构上存在的任何适合大小的方法。您可以使用
getElementAt(int index)
获取行。如果列数可变,可能需要更多工作。Do
getModel()
on the JList to get the underlyingListModel
, then callgetSize()
on it.EDIT: oh, and if the model contents consist of a datastructure with multiple columns, call whatever suitable method exists on that for the size. You can get a row with
getElementAt(int index)
. Might require some more work if the column count is variable.