是否可以根据鼠标位置滚动 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 监听器中,当光标到达顶部/底部行时滚动一次。不过,我不确定如何让它在这之后继续滚动(目前用户必须不断移动鼠标才能让它继续滚动)。
最佳答案
我猜您需要在鼠标进入表格时启动一个 Swing 计时器。在 mouseMoved 事件中,您可以更改计时器间隔以使其更快或更慢,具体取决于鼠标相对于桌面/桌面的位置。然后当 Timer 触发时,您可以使用 MouseInfo 类(或保存最后一个 mouseMoved 点)来获取鼠标位置以确定是否向上/向下滚动一行。
关于java - JTable 按鼠标位置滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4418897/