JTable排序不是单元格中的好值

时间:2018-01-19 16:46:11

标签: java swing jtable

我正在使用NetBeans编写程序。我使用设计创建了一个JTable,并且我没有任何问题地向表中添加行。

当我单击选项卡以使用setAutoCreateRowSorter(true)对其工作的表进行排序时。然而,当我试图获得更新的单元格的值时,它不是好的。实际上,当我填满我的桌子时,这是前一个单元格的价值。

这就是我在表格中添加行的方法:

DefaultTableModel model = (DefaultTableModel) table.getModel();
model.setRowCount(0);
for (int i = 0; i < arrayPep.size(); i++) {
   model.addRow(new Object[]{arrayPep.get(i).getPeptide(), arrayPep.get(i).getStart(), arrayPep.get(i).getStop(), arrayPep.get(i).geteValue(), arrayPep.get(i).getName()});
}

这就是我尝试获取单元格值的方法:

DefaultTableModel model = (DefaultTableModel) table.getModel();
table.getModel().getValueAt(rowSelected, 0);

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

您正在使用视图中的索引为模型编制索引。首先使用JTable.convertRowIndexToModel(rowSelected)将视图索引转换为模型索引:

int modelRowSelected = table.convertRowIndexToModel(rowSelected);
table.getModel().getValueAt(modelRowSelected, 0);

关于视图索引和模型索引的一些上下文,请阅读我给出的this answer主题。