搜索时的 JTable - 没有得到正确的 ID
JTable when searched - not getting right ID
所以我尝试在搜索名称后点击 table,然后在其他 table 中对其进行编辑,问题是我没有获得正确的 ID,而只是获取第一个 ID。
JTable
Search in action
ID wrong
编辑代码
int linha = this.jTable1.getSelectedRow();
int idUtilizador = Integer.parseInt((String)(this.jTable1.getModel() ).getValueAt(linha, 0));
Utilizador uti = UtilizadorJpaController.read(idUtilizador);
CriarCliente updateCliente = new CriarCliente(uti);
updateCliente.setVisible(true);
搜索代码
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
TableRowSorter<DefaultTableModel> tr = new TableRowSorter<DefaultTableModel>(model);
jTable1.setRowSorter(tr);
tr.setRowFilter(RowFilter.regexFilter(jTextField1.getText().trim(),1))
当您对 table 进行排序或筛选时,TableModel
中的数据不会更改。只有数据的视图发生变化。
如果要从模型中获取数据,则需要将“视图行”转换为“模型行”:
int linha = this.jTable1.getSelectedRow();
int modelRow = jTable1.convertRowIndexToModel(linha);
int idUtilizador = Integer.parseInt((String)(this.jTable1.getModel() ).getValueAt(modelRow, 0));
//int idUtilizador = Integer.parseInt((String)(this.jTable1.getModel() ).getValueAt(linha, 0));
此外,您为什么要使用 Integer.parseInt(...)?如果模型中的数据是整数值,那么它应该存储为整数值,而不是字符串值。
所以我尝试在搜索名称后点击 table,然后在其他 table 中对其进行编辑,问题是我没有获得正确的 ID,而只是获取第一个 ID。
JTable
Search in action
ID wrong
编辑代码
int linha = this.jTable1.getSelectedRow();
int idUtilizador = Integer.parseInt((String)(this.jTable1.getModel() ).getValueAt(linha, 0));
Utilizador uti = UtilizadorJpaController.read(idUtilizador);
CriarCliente updateCliente = new CriarCliente(uti);
updateCliente.setVisible(true);
搜索代码
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
TableRowSorter<DefaultTableModel> tr = new TableRowSorter<DefaultTableModel>(model);
jTable1.setRowSorter(tr);
tr.setRowFilter(RowFilter.regexFilter(jTextField1.getText().trim(),1))
当您对 table 进行排序或筛选时,TableModel
中的数据不会更改。只有数据的视图发生变化。
如果要从模型中获取数据,则需要将“视图行”转换为“模型行”:
int linha = this.jTable1.getSelectedRow();
int modelRow = jTable1.convertRowIndexToModel(linha);
int idUtilizador = Integer.parseInt((String)(this.jTable1.getModel() ).getValueAt(modelRow, 0));
//int idUtilizador = Integer.parseInt((String)(this.jTable1.getModel() ).getValueAt(linha, 0));
此外,您为什么要使用 Integer.parseInt(...)?如果模型中的数据是整数值,那么它应该存储为整数值,而不是字符串值。