2010-07-06 64 views
4

我有这样的问题:的Java Swing:自动滚动使用JList和JScrollPane的

我有一个JList(一个JScrollPane内)有说约1000元,与此JList的尺寸显然不允许展示所有的数据。现在,我在JScrollPane中有这个JList,当我说JList.setSelectedIndex()时,我需要这个JScrollPane自动滚动,并在JList上的该索引上显示该元素。

预先感谢您!

回答

6

我相信你正在寻找下面的方法:

public void ensureIndexIsVisible(int index)

滚动封闭视口内的列表,使指定单元完全可见。这将使用指定单元格的边界调用scrollRectToVisible。要使此方法起作用,JList必须位于JViewport内。 如果给定的索引超出列表的单元格范围,则此方法无效。

+0

非常感谢!它按我的需要工作! – 2010-07-07 17:32:34

1

我没有测试过这一点,但你应该能够使用

myScrollPane.getViewport().scrollRectToVisible(Rectangle r) 

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


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

+0

+1事实上,'JList'使用'scrollRectToVisible()'来实现'ensureIndexIsVisible()'。 – trashgod 2010-07-06 18:00:17