JTable排序不是单元格中的好值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
我怎么能解决这个问题?
答案
您正在使用视图中的索引为模型编制索引。首先使用JTable.convertRowIndexToModel(rowSelected)
将视图索引转换为模型索引:
int modelRowSelected = table.convertRowIndexToModel(rowSelected);
table.getModel().getValueAt(modelRowSelected, 0);
有关视图索引和模型索引的一些上下文,请阅读我给出的关于该主题的this answer。
以上是关于JTable排序不是单元格中的好值的主要内容,如果未能解决你的问题,请参考以下文章
如何使 JTable 单元格不可编辑但应该能够选择和复制当前单元格中的值
JTable 单元格中的 JDateChooser 输入键并不总是有效