如何在用户对JTable进行排序时跟踪行索引?

nit*_*.kk 10 java swing jtable

我有一个第一行空白的JTable.现在,当我通过单击该列对基于列的表进行排序时,空行将位于底部.如果我在空白行中插入一些内容并进行排序,则相应地放置行.即使在排序时,如何跟踪其行索引.我需要访问该行,但如果用户进行排序,那么我会松开行索引,因为它不再是第一行.

hea*_*ide 14

您所使用的假设TableRowSorterJava 6中新增的东西,我认为你需要什么,在看的方法convertRowIndexToModel,并convertRowIndexToViewRowSorter类.你会做类似的事情

table.getRowSorter().convertRowIndexToView(0)

找出哪个可见行索引实际上是模型中的行索引0.

编辑:正如Tulskiy在评论中指出的,如果没有为表分配行排序器,这可能会导致NullPointerException.最好直接在JTable上使用这些方法,例如table.convertRowIndexToView(0)


Den*_*kiy 13

JTable.convertRowIndexToView()将根据模型中的索引返回视图中行的索引.JTable.convertRowIndexToModel()会做相反的事情.