我正在使用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);


我该如何解决?

最佳答案

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

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


有关视图索引和模型索引的某些上下文,请阅读我在该主题上给出的this answer

10-02 09:29