我正在使用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);
我该如何解决这个问题?
答案 0 :(得分:3)
您正在使用视图中的索引为模型编制索引。首先使用JTable.convertRowIndexToModel(rowSelected)
将视图索引转换为模型索引:
int modelRowSelected = table.convertRowIndexToModel(rowSelected);
table.getModel().getValueAt(modelRowSelected, 0);
关于视图索引和模型索引的一些上下文,请阅读我给出的this answer主题。