4
在用户排序的内容后检索JTable行内容我有一个包含两个表A和B的窗格。在A中选择一行时,应调整B的内容。通过单击列
我的代码检测罚款行选择。但是,当用户点击列标题对行进行排序时,A表格模型中似乎没有考虑到这一点。
所以,我可以得到选定的行号(这是正确的考虑排序),但是当我尝试使用它的表模型检索行字段的内容时,它给了我值如同行未被排序。
如何从选定的行号中检索所选行的内容?
在用户排序的内容后检索JTable行内容我有一个包含两个表A和B的窗格。在A中选择一行时,应调整B的内容。通过单击列
我的代码检测罚款行选择。但是,当用户点击列标题对行进行排序时,A表格模型中似乎没有考虑到这一点。
所以,我可以得到选定的行号(这是正确的考虑排序),但是当我尝试使用它的表模型检索行字段的内容时,它给了我值如同行未被排序。
如何从选定的行号中检索所选行的内容?
没有任何代码,很难确定你的问题是什么。但是,这听起来像是混合了视图和模型之间的行索引。当你有一个行号时,你必须非常清楚你所指的坐标系(视图或模型)。有关convertRowIndexToModel
和convertRowIndexToView
方法,请参见the JTable API。
你可能需要的东西是这样的:
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);
编辑的列索引也是如此。如果您错过了转换列,您可能通常不会注意到,但是如果用户拖动并重新排列了列上的列,那么如果您没有转换列坐标,它也会中断。 – wolfcastle