为什么TableRowSorter搞砸了我的结果?

vem*_*emv 4 java swing jtable

我有一个JTable我链接a DefaultTableModel和a TableRowSorter.他们工作.单击一行时,其内容将复制到JTextfields,以便您可以编辑它们*.但是,如果按某个字段对表进行排序然后单击一行,则复制的内容将从其先前的值(排序之前)中取而代之,而不是从新值中取出.是什么导致这个?

*我这样做是因为该表只包含所有字段的子集.

jzd*_*jzd 7

看起来当您获取所选行索引时,在获取数据之前不会将其转换为模型索引.

而不是这个:

table.getSelectedRow()
Run Code Online (Sandbox Code Playgroud)

用这个:

table.convertRowIndexToModel(table.getSelectedRow());
Run Code Online (Sandbox Code Playgroud)