将行保持在相同位置的视图中

时间:2011-11-01 16:25:03

标签: java swing jtable jscrollpane viewport

我有一个表格,我可以在表格中显示的数据中添加一些过滤器,我希望能够在屏幕上的同一位置保留一个特定的行,用于选择我选择了顶行的行因为我知道的唯一一行是否有任何数据(可能是唯一的行),当过滤器改变时我需要滚动到那一行(或者它附近的一行),我可以找到项目的行号我想要改变我想去的数据后去。

目前我正在使用jTable.scrollRectToVisible(new Rectangle(jTable.getCellRect(rowId, 0, true)));,但这只是确保它在视野中。因为在大多数情况下,数据的更改使我的视图转到顶部,它将行滚动到视图的底部。 我如何才能最好地将行放到我的视图顶部?如果行位于我的数据的末尾,它应该只滚动到底部,而不是强制滚动框中的空白区域使其到达顶部。

1 个答案:

答案 0 :(得分:2)

scrollPane.getViewport().setViewPosition(Point);

Point将是getCellRect(...)方法返回的x / y位置。