我有一个包含两个表 A 和 B 的 Pane 。当在 A 中选择一行时,应该更新 B 的内容。
我的代码检测 A 中的行选择。但是,当用户单击列标题对行进行排序时,A 的表模型似乎并未考虑到这一点。
因此,我可以获得选定的行号(考虑到排序是正确的),但是当我尝试使用其表模型从 A 检索行字段内容时,它给我的值就好像行没有被排序一样。
如何从选中的行号中获取选中行的内容?
最佳答案
没有任何代码,很难确定您的问题是什么。但是,听起来您正在混淆 View 和模型之间的行索引。当你有一个行号时,你必须非常清楚你指的是什么坐标系( View 或模型)。参见 the JTable API对于 convertRowIndexToModel
和 convertRowIndexToView
方法。
你可能需要这样的东西:
JTable table = ...;
TableModel model = ...;
int viewRow = table.getSelectedRow();
int modelRow = table.convertRowIndexToModel(viewRow);
int viewColumn = table.getSelectedColumn();
int modelColumn = table.convertColumnIndexToModel(viewColumn);
Object cell = model.getValueAt( modelRow, modelColumn );
关于java - 在用户通过单击列对内容进行排序后检索 JTable 行内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6417018/