Java JList 滚动到所选项目

Posted

技术标签:

【中文标题】Java JList 滚动到所选项目【英文标题】:Java JList scroll to selected item 【发布时间】:2010-12-05 08:21:43 【问题描述】:

我有一个JList,里面有很多项目,其中一个被选中。我想滚动到这个JList中的选中项,这样用户就可以快速看到选中了哪个项。

我该怎么做?

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

【问题讨论】:

为了确保它始终可见,您可以覆盖 setSelectedIndex 方法并从那里调用 Sbodd 的方法。 【参考方案1】:

应该这样做:

dataList.ensureIndexIsVisible(dataList.getSelectedIndex());

【讨论】:

【参考方案2】:

或者,如果启用了多选:

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

【讨论】:

它的 dataList.getMinSelectionIndex() 但是,答案对我仍然有用:)【参考方案3】:

你可以使用ensureIndexIsVisible方法

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

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

【讨论】:

以上是关于Java JList 滚动到所选项目的主要内容,如果未能解决你的问题,请参考以下文章

更改可见范围时如何避免 CellList/Table 自动滚动到所选项目

如何在不手动滚动的情况下将 HMSegmentedControl 水平滚动到所选索引

java swing中jList滚动条位置问题

用java做了个多人聊天室,显示内容用的JList和JSCrollPane,我想让滚动面板的滚动条

UWP Combobox 项目无缘无故滚动到中间

Java中Swing组件中的JTextArea,JList控件中的滚动条问题?帮忙解决!