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

