Java 隐藏列,但未读取正确的值

Java 隐藏列,但未读取正确的值,java,jtable,tablemodel,Java,Jtable,Tablemodel,我使用TableModel创建了一个简单的JTable,并隐藏了第一列。 我在我的JTable上设置了TableRowSorter 这是我用来创建表的代码 tableModelArticoliVendere = new MyTableModelDescrizioneArticoli(); tableArticoliVendere = new CustomTableArticoliDaVendereBar(tableModelArticoliVendere); sorter = new Tab

我使用TableModel创建了一个简单的JTable,并隐藏了第一列。 我在我的JTable上设置了TableRowSorter 这是我用来创建表的代码

tableModelArticoliVendere = new MyTableModelDescrizioneArticoli();
tableArticoliVendere = new CustomTableArticoliDaVendereBar(tableModelArticoliVendere);  
sorter = new TableRowSorter<MyTableModelDescrizioneArticoli>(tableModelArticoliVendere);
tableArticoliVendere.setRowSorter(sorter);
tableArticoliVendere.addMouseListener(new MyMouseAdapterArticoliDaVendere());
tableArticoliVendere.removeColumn(tableArticoliVendere.getColumnModel().getColumn(0));
问题是: 如果我看到完整的表格并点击其中一行表格,我会正确地阅读代码。如果我使用行过滤器,并尝试单击第一行,则会出现错误

我有3行的表格,例如:

TABLE
 column 0| column 1
 ------------------
 valore1 | 1
 valore2 | 2
 valore3 | 3 
如果我使用过滤器,我会遇到以下情况:

 TABLE
 column 0| column 1
 ------------------
 valore2 | 2
 valore3 | 3 
如果我尝试单击第一行,codiceArticolo的值是valore1而不是valore2


如果未隐藏列0,则不会出现此错误。

当在表中启用排序或筛选时,表行和列的索引将停止与模型行和列的索引对齐。您可以使用和说明这一点

例如,当您使用
t.getSelectedRow()
时,可以如下进行调整:

int tableRowIndex = t.getSelectedRow();
int modelRowIndex = t.convertRowIndexToModel(tableRowIndex);
如果您在代码中指明何时使用视图索引以及何时使用模型索引,这也会有所帮助

int tableRowIndex = t.getSelectedRow();
int modelRowIndex = t.convertRowIndexToModel(tableRowIndex);