【问题标题】:JTable, RowSorter, getSelectedRow dataJTable、RowSorter、getSelectedRow 数据
【发布时间】:2011-06-14 00:43:10
【问题描述】:

我在 JTable 中使用 RowSorter,当我对其中一列进行排序并调用 getSelectedRowData() 方法时,它返回错误的数据。

public Object getSelectedRowData()
{
    if(getDataArray() != null)
    {
        if(grid.getRowSorter() != null)
            return ((GridModel) grid.getRowSorter().getModel()).getData().get(grid.getSelectedRow());
        else
            return model.getData().get(grid.getSelectedRow());
    }
    else
        return null;
}

我认为问题在于排序器对表数据进行排序,但未重新加载带有数据的 ArrayList。 我该如何解决?

【问题讨论】:

  • 没关系,我找到了解决方案。我只需要使用 convertRowIndexToModel 方法。

标签: java swing sorting jtable


【解决方案1】:

为了获取当前选定的数据,您可以将视图中的选定行号转换为模型行号。

jTable1.convertRowIndexToModel(jTable1.getSelectedRow())

【讨论】: