我正在使用 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);
我该如何解决这个问题?
最佳答案
您正在使用 View 中的索引为模型建立索引。首先使用 JTable.convertRowIndexToModel(rowSelected)
将 View 索引转换为模型索引:
int modelRowSelected = table.convertRowIndexToModel(rowSelected);
table.getModel().getValueAt(modelRowSelected, 0);
有关 View 索引和模型索引的一些上下文,请阅读 this answer我就这个主题做了介绍。
关于java - JTable 排序在单元格中没有好的值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48345805/