1
我有一张桌子,我可以在桌子上显示的数据中添加一些过滤器,我希望能够在屏幕上的相同位置上保留特定的行,以便选择行我选择了最上面的一行,因为它的唯一行我知道是否有如果有任何数据(可能是唯一的行),当过滤器更改我需要滚动到该行(或附近它),我可以找到我想更改数据后要去的项目的行号。在同一位置上保持行
目前即时通讯使用jTable.scrollRectToVisible(new Rectangle(jTable.getCellRect(rowId, 0, true)));
但这只是确保它的视野。并且由于在大多数情况下,数据的更改使我的视图进入顶部,所以将行滚动到视图的底部。 我如何最好地将行放到我的视图顶部?如果行在我的数据的末尾,它应该滚动到底部,而不是强制滚动框中的空白区域到顶部。
(jTable.getBounds()。height/numRows)* position应该为您提供您感兴趣的记录的大致位置,然后您可以滚动到该记录。 – RHT
这里有一个更好的算法 - http://www.exampledepot.com/egs/javax.swing.table/Vis.html – RHT
@RHT我也一直在使用该算法,但我没有看到它是如何比更好简单的'jTable.scrollRectToVisible(new Rectangle(jTable.getCellRect(rowId,0,true)));' – Blem