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

标签 java swing tablerowsorter

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

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

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

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

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

换句话说,表中行顺序的更改应该反射(reflect)在模型中。

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

如何解决这个问题?

最佳答案

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

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

int modelRow = table.convertRowIndexToModel(selectedRow);

关于java - 单击 TableRowSorter 时获取所选行中的用户对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37427361/

相关文章:

java - 使用表值填充组合框

java - 如何在树莓派上运行Java Swing应用程序

java - 同时在 jframe 中显示标签(即文本等)和形状

java - HMS核心 map 套件, map 加载但不渲染

java - 一旦Entity持久化到timestamptz,Java时区信息会丢失吗?

java - 解析 JWT token 有效负载数据以在 android/java 中获取特定值

java - JScrollPane 滚动条只有在调用 rowSorter.toggleSortOrder() 后才会出现

swing - 添加 TableRowSorter 添加值到模型后导致 java.lang.IndexOutOfBoundsException : Invalid range

java - 使用 Java TableRowSorter 对长整型进行排序

java - 如何从 java servlet 返回一个 html 文档?