我有这个问题:
我有一个 JList(在 JScrollPane 内),其中包含大约 1000 个元素,而这个 JList 的维度显然不允许显示所有数据。现在,我在 JScrollPane 中有这个 JList,当我说 JList.setSelectedIndex() 时,我需要它,JScrollPane 会自动滚动到并在 JList 上的该索引上显示该元素。
先感谢您!
我有这个问题:
我有一个 JList(在 JScrollPane 内),其中包含大约 1000 个元素,而这个 JList 的维度显然不允许显示所有数据。现在,我在 JScrollPane 中有这个 JList,当我说 JList.setSelectedIndex() 时,我需要它,JScrollPane 会自动滚动到并在 JList 上的该索引上显示该元素。
先感谢您!
我相信您正在寻找以下方法:
public void ensureIndexIsVisible(int index)
在封闭的视口中滚动列表以使指定的单元格完全可见。这使用指定单元格的边界调用 scrollRectToVisible。要使此方法起作用,JList 必须位于 JViewport 内。如果给定的索引在列表的单元格范围之外,则此方法不会产生任何结果。
我没有测试过这个,但你应该可以使用
myScrollPane.getViewport().scrollRectToVisible(Rectangle r)
其中 r 是您JList
的总(虚拟)区域中包含感兴趣信息的区域。您可以根据 JList 的项目高度和行号计算所需的垂直偏移量。
编辑:语法的答案更容易实现。