java - JTable 排序在单元格中没有好的值(value)

标签 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);

我该如何解决这个问题?

最佳答案

您正在使用 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/

相关文章:

java - 所有可能的路径

java - jProgressBar 与数据库

java - [JAVA]如何调用方法 "itemStateChanged"

java - 添加新行后如何更新 JTable 的 View ?

java - Hibernate批量保存嵌套对象

java - Kotlin检查两个列表是否相同,一个列表是否具有其他元素?

java - 如何在 Java 中调用输入 validator ?

java - 如何为JTable的表头设置光标?

Java - ResultSet 更改数据库列名称以在 JTable 中显示

java - 返回基于 String 的 switch capable 值