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 水平滚动到所选索引