将所选项目滚动到JList的顶部

时间:2012-06-11 18:19:36

标签: java swing visibility jscrollpane jlist

ensureIndexIsVisible()使所选项目出现在JList的末尾,那么如何让所选项目出现在JList的顶部而不是最后呢?

4 个答案:

答案 0 :(得分:4)

试试这个:

yourList.getFirstVisibleIndex();

答案 1 :(得分:3)

试试这个:

  1. 使用list.getFixedCellHeight()
  2. 获取每个项目的高度
  3. 使用scrollpane.getViewport().getViewPosition().y
  4. 获取视口范围
  5. 将(2)除以(1)得到隐藏的单元格数,将其四舍五入,这就是你的索引。
  6. 可能有一种更简单的内置方式。查看JListJScrollpane的API。

答案 2 :(得分:0)

好的,最后我想要我想要

jlist.ensureIndexIsVisible(index);
int num;
if(index+1000>datalist.size())
num = datalist.size()-index-1; 
else
num = 1000;
jlist.scrollRectToVisible(jl.getCellBounds(index,index+num));
jlist.setSelectedIndex(index);

这使得我在索引处的所选项目出现在JList的顶部

答案 3 :(得分:0)

这个问题很老,但也许我的答案很有用。

myList.setVisibleRowCount(x);
int selected=myList.getSelectedIndex();
myList.scrollRectToVisible(myList.getCellBounds(selected,selected+x));