是否有像 "changeSelection()" 到 select 行但在 table 顶部而不是底部的功能?

Is there an function like "changeSelection()" to select row but on top of the table not on bottom?

我有一个 jTable,其中包含来自上一个操作的自动 select 对应行的树。但是 changeSelection 滚动并且 select 行最后可见在底部。对我来说是 uncofortable 因为它是树并且更好地被滚动和 selected 行作为第一个可见的 table.

我正在尝试 table.scrollRectToVisible(table.getCellRect(row,column, true)); 相同的结果并尝试自定义设置 scrollBar 值,但我不知道正确的值,因为面板可以改变大小。

我希望自动滚动到行,并且该行将标记在 table 的 top 上。现在自动滚动到行并标记在 table 的 底部

scrollRectToVisible(...) 方法仅滚动 JScrollPaneJViewport 以确保 Rectangle 可见。所以当你向下滚动时。它将显示在底部。如果向上滚动,它将显示在顶部。

控制滚动的更简单方法是自己设置 JViewport 位置:

JViewport viewport = (JViewport)scrollPane.getViewport();
Rectangle rectangle = table.getCellRect(row, column, true);
Point point = new Point(rectangle.x, rectangle.y);
viewport.setViewPosition( point );