4

我有这个问题:

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

先感谢您!

4

2 回答 2

6

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

public void ensureIndexIsVisible(int index)

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

于 2010-07-06T13:52:03.410 回答
1

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

myScrollPane.getViewport().scrollRectToVisible(Rectangle r)

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


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

于 2010-07-06T13:55:40.853 回答