Como faço para quando eu digitar no jTextField ele filtrar a tabela comparando o conteúdo da coluna “nome” da tabela com o conteúdo digitado no jTextField?
Botão pesquisar em jTable
4 Respostas
Implementa um método no teu table model para isso.
Qual? Existe algum método especifico pra este caso?
Solucao aceita
Você cria, cara.
Eu criaria um método que recebe uma String e verifica em todas as colunas se existe aquele valor. Não existindo, remove da lista de dados a serem exibidos, existindo, mantém.
Eu faço um jComboBox e coloco o nome da coluna que quero pesquisar. Ae depois faço um switch colocando cada case com a palavra do Filtro que foi escrito no jComboBox.
Exemplo:
DefaultTableModel modelo = (DefaultTableModel) this.jtbConsulta.getModel();
final TableRowSorter<TableModel> classificador = new TableRowSorter<>(modelo);
jtbConsulta.setRowSorter(classificador);
String texto = jtfPesquisar.getText();
String filtro = (String.valueOf(jcbFiltro.getSelectedItem()));
switch (filtro) {
case "Código":
classificador.setRowFilter(RowFilter.regexFilter(texto, 0));
break;
case "Nome":
classificador.setRowFilter(RowFilter.regexFilter(texto, 1));
break;
case "Data":
classificador.setRowFilter(RowFilter.regexFilter(texto, 2));
break;
default:
classificador.setRowFilter(RowFilter.regexFilter(texto, 1));
}
Tudo que for escrito no jTextField ( no meu caso jtfPesquisar - texto ), vai fazer exatamente o que o Darlan disse.
Criado 25 de abril de 2019
Ultima resposta 26 de abr. de 2019
Respostas 4
Participantes 3