0

sureIndexIsVisible()を使用すると、選択したアイテムが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 に答える