JTable获得第一个可见行

时间:2013-12-03 12:45:16

标签: java swing jtable jscrollpane jviewport

我有一个Swing JTable。它很大,用户可以向上和向下滚动以查看他们想要处理的数据行。当用户停止滚动时,我想知道JTable的行号,它是用户可以看到的第一个可见行。在用户完成其他操作之后,我想使用它来回滚到表中的这个位置(我知道如何进行滚动 - 它得到第一个可见的行,让我难倒)。

1 个答案:

答案 0 :(得分:5)

首先需要找出表格的哪个部分可见,然后将视觉坐标映射到基础行:

JViewport viewport = scrollPane.getViewport();
Point p = viewport.getViewPosition();
int rowIndex = table.rowAtPoint(p);

除此之外,您可能希望尝试使用p的偏移量(例如,将其偏移半行高度等),具体取决于您在第一个可见行所需的行为时只有部分可见。