用户通过单击列对内容进行排序后检索JTable行内容

Jér*_*nge 4 java swing sorted jtable selection

我有一个包含两个表A和B的窗格.当在A中选择一行时,应该更新B的内容.

我的代码检测到A中的行选择.但是,当用户单击列标题以对行进行排序时,在A的表模型中似乎不会考虑这一点.

所以,我可以得到所选的行号(考虑到排序是正确的),但是当我尝试使用其表模型从A检索行字段内容时,它给出了值,就像行没有被排序一样.

如何从所选行号中检索所选行的内容?

wol*_*tle 10

没有任何代码,很难确定你的问题是什么.但是,听起来你混淆了视图和模型之间的行索引.当您有行号时,您必须非常清楚您所指的坐标系统(视图或模型).见JTable的APIconvertRowIndexToModelconvertRowIndexToView方法.

你可能需要这样的东西:

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 );
Run Code Online (Sandbox Code Playgroud)