单击TableRowSorter时,在所选行中获取用户对象

时间:2016-05-25 03:35:53

标签: java swing tablerowsorter

我正在使用表模型来处理表中的数据。在那,

我使用ArrayList<MyUserObject>datalist来保存模型的数据。我在模型中使用以下方法重新获取用户对象:

public MyUserObject getMyUserObject(int rowIndex)
{
    return datalist.get(rowIndex);
}

因此,当选择了一行表时,我可以使用ListSelectionListener使用dataTable.getSelectedRow()获取所选行的索引并使用该值我能够使用上述方法从模型中检索用户对象。

但是当使用TableRowSorter时,我无法获得所选行中用户对象的实际值。因为单击tablesorter时,会更改数据的行索引。但在模型中它保持不变。因此,我无法获得有关所选行的正确用户对象。

换句话说,表格中的行顺序更改应反映在模型中。

我应该重新排列模型中的arraylist吗?或者还有其他简单的方法吗?

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

  

我能够使用

获取所选行的索引

然后您需要将索引转换为模型行:

int modelRow = table.convertRowIndexToModel(selectedRow);