Java 如何获取在我的JList中可见的列数和行数?

Java 如何获取在我的JList中可见的列数和行数?,java,swing,pagination,jscrollpane,jlist,Java,Swing,Pagination,Jscrollpane,Jlist,我有一个JList,它位于JscrollPane的内部,我正在尝试对数据进行分页,当用户滚动时,它会将适当数量的数据加载到屏幕上。问题是我需要计算出需要从文件中缓冲多少数据,唯一的方法是计算出需要在屏幕上显示多少数据。有人知道如何从myJList中获取可以显示的数字或行和列吗?使用JList和JScrollPane进行分页也是一个好主意,还是有其他更适合在滚动面板中显示大量数据的方法 感谢您在JList上执行getModel()以获取基础ListModel,然后在其上调用getSize() 编辑

我有一个
JList
,它位于
JscrollPane
的内部,我正在尝试对数据进行分页,当用户滚动时,它会将适当数量的数据加载到屏幕上。问题是我需要计算出需要从文件中缓冲多少数据,唯一的方法是计算出需要在屏幕上显示多少数据。有人知道如何从my
JList
中获取可以显示的数字或行和列吗?使用
JList
JScrollPane
进行分页也是一个好主意,还是有其他更适合在滚动面板中显示大量数据的方法

感谢您在JList上执行
getModel()
以获取基础
ListModel
,然后在其上调用
getSize()

编辑:哦,如果模型内容由一个具有多个列的数据结构组成,则调用该数据结构上存在的任何适合大小的方法。您可以使用
getElementAt(int-index)
获取一行。如果列计数是可变的,则可能需要更多的工作。

在JList上执行
getModel()
以获取基础
ListModel
,然后在其上调用
getSize()


编辑:哦,如果模型内容由一个具有多个列的数据结构组成,则调用该数据结构上存在的任何适合大小的方法。您可以使用
getElementAt(int-index)
获取一行。如果列计数是可变的,则可能需要更多的工作。

您可以使用
JList
getFirstVisibleIndex
getLastVisibleIndex
方法来计算它在可见时显示的项目数


如果滚动窗格中视口的大小更改,则可见行的数量也将更改。因此,如果组件可调整大小,您可能需要倾听组件大小的变化。

您可以使用
getFirstVisibleIndex
getLastVisibleIndex
JList
方法来计算它在可见时显示的项目数


如果滚动窗格中视口的大小更改,则可见行的数量也将更改。因此,如果组件可以调整大小,您可能需要监听组件大小的变化。

是的,但为了做到这一点,我的ListModel必须已经加载了我缓冲的数据?在把数据放在视图中之前,我想知道视图能容纳多少数据。啊,我没有很好地解释你的问题。如果我是你,我就不会费心去弄清楚到底能显示多少数据。只需加载一个稳定的批,足以填满几个屏幕,然后在向下滚动时使用某种滚动侦听器方案加载更多。您还可以根据对ListModel的getElementAt()的调用加载数据,以便加载下一页。@G_H我没有想到这一点,这是个好主意,谢谢!我认为AKJ的回答值得进行一些调查。听起来它能提供你所需要的。但在每次向下滚动时,可能要小心加载额外的行,这可能会使速度减慢一点。提前在缓冲区中添加一些额外的内容似乎是合理的。是的,但为了做到这一点,我的ListModel必须已经加载了我缓冲的数据?在把数据放在视图中之前,我想知道视图能容纳多少数据。啊,我没有很好地解释你的问题。如果我是你,我就不会费心去弄清楚到底能显示多少数据。只需加载一个稳定的批,足以填满几个屏幕,然后在向下滚动时使用某种滚动侦听器方案加载更多。您还可以根据对ListModel的getElementAt()的调用加载数据,以便加载下一页。@G_H我没有想到这一点,这是个好主意,谢谢!我认为AKJ的回答值得进行一些调查。听起来它能提供你所需要的。但在每次向下滚动时,可能要小心加载额外的行,这可能会使速度减慢一点。提前在缓冲区中添加一些额外的内容似乎是合理的。+1对,这里的另一个例子+1对,这里的另一个例子