Java Swing:使用JList和JScrollPane进行自动滚动

时间:2010-07-06 13:47:56

标签: java swing jlist jscrollpane

我遇到了这个问题:

我有一个JList(在JScrollPane中),大约有1000个元素,这个JList的维度显然不允许显示所有数据。现在,我在JScrollPane中有这个JList,当我说JList.setSelectedIndex()时,我需要它,JScrollPane自动滚动进入,并在JList上的该索引上显示该元素。

提前谢谢!

2 个答案:

答案 0 :(得分:6)

我相信您正在寻找以下方法:

public void ensureIndexIsVisible(int index)

在封闭的视口中滚动列表,使指定的单元格完全可见。这会将scrollRectToVisible调用指定单元格的边界。要使此方法起作用,JList必须位于JViewport中。 如果给定的索引在列表的单元格范围之外,则此方法不会产生任何结果。

答案 1 :(得分:1)

我没有测试过这个,但你应该可以使用

myScrollPane.getViewport().scrollRectToVisible(Rectangle r)

其中r是JList包含感兴趣信息的总(虚拟)区域的区域。您可以从JList的项目高度和行号计算所需的垂直偏移量。


编辑:语法的答案更容易实现。