Filtrar consulta em JTable!

5 respostas
andre_bento

Olá amigos… estou precisando de mais uma ajuda do pessoal aqui do fórum!
Estou querendo fazer o seguinte…
Tenho uma tela com um JTable que lista todos os produtos que o usuário tem no estoque…
Agora gostaria de fazer um método que o usuário pudesse digitar algo em um TextField e já fosse fazendo a filtragem automática dos produtos…
Tipo… .se o cara começou a digitar Mar… eu quero listar todas as palavras que começam com mar… martelo…etc
Só não to sabendo como faço isso… criei a escuta para o textField já mas ainda não sei como vou fazer pra ele varrer pedaço por pedaço da palavra!
Me ajuda ae galeraaaaaaaaa
Um abraço a todos!!!

5 Respostas

devel.andrerocha

Se estiver usando o java6 pode usar o rowsorter e o rowfilter

http://www.guj.com.br/posts/list/32944.java
J

tenque fazer tambem com que o metodo que esta filtrando a tabela ler cada tecla pressionada no teclado!!

RobsonFagundes

ta ai…

// procura na tabela
    public void filtrarNomeNaTabela() {
        TableRowSorter sorter = new TableRowSorter(tabelaModelo);
        jtLista.setRowSorter(sorter);
        String texto = jtfFiltar.getText();
        if (texto.length() == 0) {
            sorter.setRowFilter(null);
            JOptionPane.showMessageDialog(null, "Você Deve Informar um Valor!!!", "AVISO - Erro", JOptionPane.ERROR_MESSAGE);
        } else {
            try {
                sorter.setRowFilter(RowFilter.regexFilter("(?i)" + texto));
            } catch (Exception ex) {
                JOptionPane.showMessageDialog(null, "Valor Não Encontrado!!!", "AVISO - Erro", JOptionPane.ERROR_MESSAGE);
            }
        }
    }

T+

devel.andrerocha

Pra isso vc pode usar um listener no textField que está sendo usado para inserir o texto…

ViniGodoy

Que tal usar um componente que implemente auto-filtro na JTable, estilo o do Excel?
http://www.guj.com.br/posts/list/100793.java

E ele tem a vantagem de exigir muito pouca programação adicional.

Criado 18 de dezembro de 2008
Ultima resposta 18 de dez. de 2008
Respostas 5
Participantes 5