0

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

4

4 回答 4

4

尝试这个:

yourList.getFirstVisibleIndex();
于 2012-06-11T18:28:56.043 回答
3

尝试这个:

  1. 获取每个项目的高度list.getFixedCellHeight()
  2. 获取视口边界scrollpane.getViewport().getViewPosition().y
  3. 将 (2) 除以 (1) 得到隐藏单元格的数量,将其四舍五入,这就是您的索引。

可能有一种更简单的内置方式。查看JListJScrollpane的 API 。

于 2012-06-11T18:27:08.487 回答
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 的顶部

于 2012-06-11T20:05:53.610 回答
0

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

myList.setVisibleRowCount(x);
int selected=myList.getSelectedIndex();
myList.scrollRectToVisible(myList.getCellBounds(selected,selected+x));
于 2016-08-06T11:11:53.653 回答