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