Olá pessoal consegui implementar o método abaixo em um JDialog para que eu possa buscar um determinado registro na minha jtable, estou utilizando a Classe TabelModel que extende do AbstractModel para trabalhar com jTable conforne orientam no forum, o problema é que consigo buscar os dados corretamente e aparecem na tela, porém quando eu clico na linha que busquei o valor que é retornado é o da primeira linha da tabela, como posso resolver isto?
abaixo o método que eu suo para buscar os dados e depois o método que uso para pegar os valores na tabela.
private void jTextFieldPesquisaCfopKeyPressed(java.awt.event.KeyEvent evt) {
// busca dados dentro da JTABLE.
final TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(modeloCfop);
jTableConsultaCfopDialog.setRowSorter(sorter);
String cfop = jTextFieldPesquisaCfop.getText();
if (cfop.length() == 0) {
sorter.setRowFilter(null);
} else {
try {
sorter.setRowFilter(RowFilter.regexFilter(cfop));
} catch (PatternSyntaxException pse) {
JOptionPane.showMessageDialog(this, "Erro ao recuperar informação\n" + pse.getMessage(), "ERRO!", JOptionPane.ERROR_MESSAGE);
System.err.println("Erro" + pse.getMessage());
}
}
}
// recupera os dados da linha selecionada para passar para ou outro frame.
private void jTableConsultaCfopDialogMouseClicked(java.awt.event.MouseEvent evt) {
if (evt.getClickCount() == 2) {
try {
idCfop = Long.parseLong(jTableConsultaCfopDialog.getModel().getValueAt(jTableConsultaCfopDialog.getSelectedRow(), 4).toString());
cfop = jTableConsultaCfopDialog.getModel().getValueAt(jTableConsultaCfopDialog.getSelectedRow(), 0).toString();
descricao = jTableConsultaCfopDialog.getModel().getValueAt(jTableConsultaCfopDialog.getSelectedRow(), 1).toString();
this.dispose();
} catch (Exception ex) {
JOptionPane.showMessageDialog(this, "VOCÊ DEVE SELEIONAR UM CFOP! " + ex.getMessage(), "ERRO", JOptionPane.ERROR_MESSAGE);
System.out.println("erro ao selecionar colaborador: " + ex);
}
}
}
Desde já muito obrigado!