通过鼠标位置进行JTable滚动

时间:2010-12-11 20:53:53

标签: java mouse jtable scroll position

是否可以根据鼠标位置使用JTable滚动行?

即。如果光标接近表格的顶部,它开始向上滚动,如果它接近表格的底部,它开始向下滚动。

与as3中的效果类似:

http://activeden.net/item/professional-dock-menu-as2-and-as3/127450

我目前正在使用:

int row = table.rowAtPoint(e.getPoint());
Rectangle r = table.getCellRect(row,0,true);
table.scrollRectToVisible(r);

在mouseMoved侦听器中,当光标到达顶部/底部行时,该侦听器会滚动一次。我不确定如何让它在此之后继续滚动(目前用户必须不断移动鼠标以使其继续前进)。

1 个答案:

答案 0 :(得分:1)

我猜你需要在鼠标进入桌面时启动Swing Timer。在mouseMoved事件上,您可以更改Timer间隔以使其更快或更慢,具体取决于鼠标相对于桌面/底部的位置。然后,当Timer触发时,您可以使用MouseInfo类(或保存最后一个mouseMoved点)来获取鼠标位置,以确定是向上/向下滚动一行。