java - JTable 按鼠标位置滚动

标签 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 监听器中,当光标到达顶部/底部行时滚动一次。不过,我不确定如何让它在这之后继续滚动(目前用户必须不断移动鼠标才能让它继续滚动)。

最佳答案

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

关于java - JTable 按鼠标位置滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4418897/

相关文章:

java - 如何从 IBM WebSphere 9 在 Spring Boot 中获取 JNDI 数据源

java - 在 Java ME 中将日期保存到 RMS

java - java中如何获取鼠标中键?

java - 无法读取正则表达式

c# - 如何检查 wpf C# 中的鼠标按钮是左键还是右键?

css - 复制光标使其出现两次

java - JTable 行数仅具有默认值(4 行)

java - JTable新列添加不成功

java - JTable 和 JPanel

java - java servlet 的动态表大小