Java JList滚动到所选项目

我有一个包含很多项目的JList ,其中一个被选中。 我想滚动到此JList的所选项目,以便用户可以快速查看选择了哪个项目。

我怎样才能做到这一点?

 String[] data = {"one", "two", "three", "four", /* AND A LOT MORE */}; JList dataList = new JList(data); JScrollPane scrollPane = new JScrollPane(dataList); 

这应该这样做:

 dataList.ensureIndexIsVisible(dataList.getSelectedIndex()); 

您可以使用ensureIndexIsVisible方法

http://java.sun.com/javase/6/docs/api/javax/swing/JList.html#ensureIndexIsVisible(int)

在封闭的视口中滚动列表以使指定的单元格完全可见。 这会将scrollRectToVisible调用指定单元格的边界。 要使此方法起作用,JList必须位于JViewport中。

或者,如果启用了多选:

 dataList.scrollRectToVisible( dataList.getCellBounds( dataList.getMinSelectionIndex(), dataList.getMaxSelectionIndex() ) );