Java 何时使用convertRowIndexToModel

Java 何时使用convertRowIndexToModel,java,swing,jtable,Java,Swing,Jtable,我有一些JDialogs显示JTables。 单击标题列时,会对该列进行排序。 我的问题是:我如何知道何时单击了列标题,从而激活了排序。 当排序处于活动状态时,我知道应该使用.convertRowIndexToModel方法。 但是,如果没有排序处于活动状态,如何检测列正在排序以避免弄乱正确的索引 一般来说,当您从视图(JTable)获取索引值并尝试在模型中查找某些值时,应始终使用convertRowIndexToModel。JTable在您使用它的方法时会自动执行此操作,但如果您不这样做,您需

我有一些JDialogs显示JTables。 单击标题列时,会对该列进行排序。 我的问题是:我如何知道何时单击了列标题,从而激活了排序。 当排序处于活动状态时,我知道应该使用
.convertRowIndexToModel
方法。
但是,如果没有排序处于活动状态,如何检测列正在排序以避免弄乱正确的索引

一般来说,当您从视图(
JTable
)获取索引值并尝试在模型中查找某些值时,应始终使用
convertRowIndexToModel
JTable
在您使用它的方法时会自动执行此操作,但如果您不这样做,您需要自己处理它

不需要知道视图是否已排序

如果您“真的”想知道一个表何时被排序,您可以将a附加到该表使用的
TableRowSorter


您还可以使用查看排序中包括哪些列…

我已将其用于选择表。激活自动订单时(
setAutoCreateRowSorter(true)
) 模型表的索引和视觉变化,因此您必须告诉它在模型中相对于您所看到的索引进行查找。
((CustomTable)form.getAvailListView().getModel()).data.get(form.getListView().convertRowIndexToModel(i))

啊,好的。我认为使用这种转换只能在排序时给出正确的结果。非常感谢,我现在可以看到光明了;)