Filtro com RegexFilter em Java Desktop[RESOLVIDO]

Boa noite pessoal, faço um filtro na coluna 6 ao digitar em um textfield na minha jtable, como se pode ver abaixo…

private void newFilter() { RowFilter rf = null; //If current expression doesn't parse, don't update. try { rf = RowFilter.regexFilter(FieldPesquisa.getText(), 6); } catch (java.util.regex.PatternSyntaxException e) { return; } sorter.setRowFilter(rf); }

só que para minha surpresa, depois de feito o filtro os dados aparece certo como pedi na pesquisa, mas qdo faço:

private void TablePesquisaMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: TableModel mod = TablePesquisa.getModel(); int id = (Integer)mod.getValueAt(TablePesquisa.getSelectedRow(), 6); //AKI AO INVÉS DE PEGAR O ID CORRETO, PEGA O ID DA LINHA Q APARECIA ANTES DE SE FAZER O FILTRO. System.out.println(id); if ( evt.getClickCount() == 2 ) {//faz com que tenha que se dar 2 cliques para selecionar!!!! SolicitacaoPesquisada sp = new SolicitacaoPesquisada( id,null,true,null); sp.setVisible(true); } if(evt.getButton() == MouseEvent.BUTTON3){//abre com o button direito do mouse int row = TablePesquisa.rowAtPoint(evt.getPoint());//seleciona com o button direito if (row != -1) { TablePesquisa.setRowSelectionInterval(row, row); } popup.show(evt.getComponent(),//posiciona o popup para abrir junto ao mouse evt.getX(), evt.getY()); } }

ao invés de pegar o ID correto, ele pega o ID da linha linha q estava antes de fazer o filtro…

espero q possam me ajudar.

Obrigado

Wagner

//pesquisa a jtable FieldPesquisa.getDocument().addDocumentListener( new DocumentListener() { public void changedUpdate(DocumentEvent e) { newFilter(); } public void insertUpdate(DocumentEvent e) { newFilter(); } public void removeUpdate(DocumentEvent e) { newFilter(); } }); }
esse faz o filtro ao digitar no fieldpesquisa.

na figura abaixo se eu clicar em cima de uma linha, ele pega normal o código na ultima coluna…

se eu fizer a pesquisa como na figura abaixo, ao clicar na linha q restou ele não pega o código da ultima coluna, no exemplo abaixo em vez de ele pegar o cód 1388 selecionado, ele pega o código 1389 como se não tivesse feito filtro nenhum…

alguém pode me dar uma ajudinha… obrigado

resolvi simplismente trocando isso:

TableModel mod = TablePesquisa.getModel();
int id = (Integer)mod.getValueAt(TablePesquisa.getSelectedRow(), 6);

por isso

int id = (Integer)TablePesquisa.getValueAt(TablePesquisa.getSelectedRow(), 6); //pega a coluna 6