keyListener em JTextfield

Pessoal Boa Noite,

A idéia é assim: quando o usuário digitar mais de 3 caracteres no JTextField ele começa a realizar uma consulta no banco com a string que está digitada pelo método getText().lenght(); E a cada digito no textField e refaz a consulta.

jTextField3.addKeyListener(new KeyAdapter() {
            public void keyTyped(KeyEvent e){
                if (jTextField3.getText().length()>3){
                    pesquisaCombo();
                }
            }

o método pesquisaCombo faz uma seleção na base de dados e preenche um combobox. O problema é que isso não funciona. Eu achei alguns exemplos de auto complete, porém nenhum com essa funcionalidade. Alguma luz?
[]s

Oi!

Dá uma olhada nesse post, creio que tem o que vc precisa, está bem completinho:

http://www.guj.com.br/java/116499-auto-complete-combobox-sem-levar-em-conta-acentuacao-resolvido

Grata,
Renata

[quote=RenataFA]Oi!

Dá uma olhada nesse post, creio que tem o que vc precisa, está bem completinho:

http://www.guj.com.br/java/116499-auto-complete-combobox-sem-levar-em-conta-acentuacao-resolvido

Grata,
Renata[/quote]

Então… até aí eu consegui chegar. Inclusive já tinha até achado esse exemplo. O que tem me dado bastante problema (na verdade só dá erro!!) é fazer ele executar um select após o terceiro caractere digitado pra colocar no combo.

Entendi. E qual erro que dá?

Tem como vc postar um trecho do código pra tentarmos entender?

[quote]
Então… até aí eu consegui chegar. Inclusive já tinha até achado esse exemplo. O que tem me dado bastante problema (na verdade só dá erro!!) é fazer ele executar um select após o terceiro caractere digitado pra colocar no combo. [/quote]

coloque essa parte do seu codigo, e mostre o erro na saída da aplicação!

opa… Tá na aí:

        final JTextComponent tc = (JTextComponent) comboPesquisa.getEditor().getEditorComponent();
        tc.getDocument().addDocumentListener(new DocumentListener() {

            
            @Override
            public void insertUpdate(DocumentEvent e) {
                //throw new UnsupportedOperationException("Not supported yet.");
                if (tc.getText().length()>=3){
                    List<acessoBean> search = new ArrayList<acessoBean>();
                    
                    try{
                        search = t.pesquisa(tc.getText());
                        System.out.println(search.size()); // isso vai! 
                        
                       // A partir daqui não vai !!
                        if (comboPesquisa.getItemCount() != 0)
                            comboPesquisa.removeAllItems();
                        
                        for (int i =0; i<search.size();i++){
                            comboPesquisa.addItem(search.get(i).nome); 
                        }
                    }catch (SQLException ex) {
                        Logger.getLogger(acesso.class.getName()).log(Level.SEVERE, null, ex);
                    }
                  
                }
                    
            }

A linha 15 e 18 dão problema quando eu entro peço pra executar uma consulta SQL. Estou pensando em extender a classe e implementar (ainda não fiz isso e não sei se dá certo). Mas a idéia é pegar o texto com mais de 3 caracteres e retornar uma consulta preenchendo o combo pra seleção. O que eu estou querendo fazer é semelhante a pesquisa da página inicial do google com combobox.
Depois de pesquisar um pouco eu achei a interface DocumentListener. Se eu ponho uma uma saida de texto quando eu digito mais de 3 caracteres vai.

Ah… Acabei de testar. Se eu faço isso em um outro comboBox que não seja o esse funciona.
[]s