[resolvido][Evento Key Pressed] Fazer consulta em banco ao pressionar tecla

6 respostas
T

Olá, tenho um campo texto com um comando no evento KeyPressed.

Tenho uma tabela embaixo do campo de texto. A idéia é ao usuário digitar alguma letra, fazer uma consulta ao banco com os nomes que começam com aquela letra e popular a tabela com esses resultados.

O problema está no atraso de 1 letra.

Por exemplo,

se eu digito t ele faz a query select * from  where nome like %’”;

se eu digito te ele faz a query select * from  where nome like t%’”;

se eu digito tes ele faz a query select * from  where nome like te%’”;

se eu digito test ele faz a query select * from  where nome like tes%’”;

tem sempre um atraso de 1 letra. Pelo jeito ele executa o comando antes de realmente inserir a ultima letra no campo.

if(!visor.getText().equals("")){
        
        DefaultTableModel modelo = (DefaultTableModel) tabela.getModel();

        for(int i=0;i<modelo.getRowCount();i++) modelo.removeRow(0); //apaga a tabela em toda consulta, para colocar os nomes novos.
    
        conexao.Consulta(modelo, visor.getText()); //executa a query "select * from <tabela> where nome like '"+visor+"%'";
    }

Queria tirar esse atraso de 1 letra.

{está confuso ? rs}

6 Respostas

alternative

Usa KeyReleased não pressed. :lol: :lol:

T

Deu certo =)

Qual a diferença entre os dois ? A ordem da execução dos comandos ?

alternative

ah rapaz ai vc me pegou heheheh

so sei q o released é quando vc solta o botão

tava com o mesmo problema q vc, ai meu professor mando usa o released e deu certo aqui tbm só repassei hehe

flow

julianolandim

é dificil de explicar rsrs… mas vamos la
É que com KeyPressed funciona antes de mandar a letra que você apertou (consulta depois manda a letra no campo)
ex. voce tecla a letra T primeiro ele consulta depois que manda o T para o campo.
já com o KeyReleased ele ira consultar somente depois que voce soltar a tecla (letra no campo depois a consulta)

t+

alternative

ótima explicação. Agora eu sei :smiley: flow

marcospaulo.suporte

Amigo … uma pergunta idiota.

qual a sua classe conexao.Consulta?

Criado 8 de setembro de 2011
Ultima resposta 9 de set. de 2011
Respostas 6
Participantes 4