Java JList滚动到所选项目

时间:2009-10-09 13:21:14

标签: java swing scroll jlist

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

我该怎么做?

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

3 个答案:

答案 0 :(得分:52)

这应该这样做:

dataList.ensureIndexIsVisible(dataList.getSelectedIndex());

答案 1 :(得分:11)

或者,如果启用了多选:

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

答案 2 :(得分:10)

您可以使用ensureIndexIsVisible方法

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

  

在封闭内滚动列表   视口来制作指定的单元格   完全可见。这叫   scrollRectToVisible的边界   指定的单元格。对于这个方法来   工作,JList必须在一个   的JViewport。