Olá pessoal, tudo bem? sou novo na área e ainda estou cursando o ensino superior, estou desenvolvendo um trabalho e tenho 2 meses para concluir e não estou conseguindo fazer um filtro para a minha tabela, eu queria fazer para em quanto a pessoa digita o Nome ir filtrando por nomes iguais, mas não estou conseguindo nem começar.
Procurei em diversos lugares, mas todos eles tem códigos tão complexos que nem sei onde incorporar ou como fazer, um monte de códigos desnecessários… eu incorporei os dados do Banco pelo elements que o NetBeans permite usar para facilitar a incorporação, alguém poderia me ajudar por favor?
@Bruno_R_Morillo Boa tarde amigo
Isto que você quer fazer é perfeitamente possível
{
publicvoidsorterTable(){//implemente seu tablemodel (este eu coloquei só como exemplo)model=newTableModel();//use seu objeto dao para pegar a lista que será filtradaemh=newEntityManagerHelper();//adicione a lista ao modelmodel.addLista(emh.getObjectListNamedQuery(Cliente.class,"Cliente.findAll",null,null,EntityManagerHelper.ORACLE11G_PU));//este é o objeto que faz o filtro na tabela, você o cria adicionando o model a eleTableRowSortersorter=newTableRowSorter(model);//set o model na tabelatbClientes.setModel(model);//set o sorter na tabelatbClientes.setRowSorter(sorter);//adicione o listener de digitação no campo onde o usuário vai digitar o texto de pesquisatxtPesquisa.addCaretListener(newCaretListener(){@OverridepublicvoidcaretUpdate(CaretEvente){//utilize o sorter criado para fazer um filtro especial utilizando regex (expressão regular)//neste caso eu utilizei um regex insentive case para procurar o que foi digitado em qualquer parte do texto alvo --- "^(?i:.*texto.*)$)"sorter.setRowFilter(RowFilter.regexFilter("^(?i:.*"+txtPesquisa.getText()+".*)$",1));}});}
}
Neste exemplo as colunas da tabela vão sumindo conforme a pessoa digita então você precisa converter as linhas do sorter para o model para saber qual registro foi selecionado.