Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JList滚动至所选项目_Java_Swing_Scroll_Jlist - Fatal编程技术网

Java JList滚动至所选项目

Java JList滚动至所选项目,java,swing,scroll,jlist,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); 您可以使用ensureIndexIsVisible方法

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

我该怎么做

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

您可以使用
ensureIndexIsVisible
方法

在封闭列表中滚动列表 视口以生成指定的单元格 完全可见。这叫 scrollRectToVisible的边界为 指定的单元格。对于此方法 工作时,JList必须在 JViewport


或者,如果启用了多选功能:

dataList.scrollRectToVisible(
        dataList.getCellBounds(
            dataList.getMinSelectionIndex(), 
            dataList.getMaxSelectionIndex()
        )
);
这应该做到:

dataList.ensureIndexIsVisible(dataList.getSelectedIndex());

它的dataList.getMinSelectionIndex()但是,答案对我来说仍然很有用:)为了确保它始终可见,您可以覆盖setSelectedIndex方法并从那里调用Sbodd的方法。