有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我使用表模型来处理表中的数据。在这方面

我使用ArrayList<MyUserObject>datalist保存模型的数据。我在模型中使用以下方法检索用户对象:

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

所以,当表格中的一行被选中时,我可以通过ListSelectionListener使用dataTable.getSelectedRow()获得选中行的索引,并且使用该值,我可以使用上述方法从模型中检索用户对象

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

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

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

如何解决这个问题


共 (1) 个答案

  1. # 1 楼答案

    I'm able to get the index of the selected row with

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

    int modelRow = table.convertRowIndexToModel(selectedRow);