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

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

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


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

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

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

我应该重新排列模型中的arraylist吗?还是有其他简单的方法可以做到这一点?

我该如何解决这个问题?

最佳答案

我能够获得所选行的索引


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

int modelRow = table.convertRowIndexToModel(selectedRow);

07-27 23:09