Método pesquisar

Estou utilizando um método pesquisar mas estou com dificuldades .Mando pesquisar umas palavras ele pesquisa quando mando pesquisar outras palavras ele falha constando o seginte erro:

erro :java.lang.StringIndexOutOfBoundsException:String Index out of range 6

Gostaria de saber o que ocasione esse erro ,e se alguém tivesse outro método para efetuar pesquisa me mandasse
algum exemplo.

Código:

public void pesquisa_digitacao() { try { teste.resultset.first(); String igual = "n"; int tamanho_pesquisa = tf_pesquisar.getText().length(); while(igual.equals("n")) { String pesquisado = teste.resultset.getString("cli_nome").substring(0,(tamanho_pesquisa)); if (pesquisado.equals(tf_pesquisar.getText())) { igual = "s"; } else teste.resultset.next(); } // nas linhas abaxo, mostra_conteudo_tabela(); codigo.setText(teste.resultset.getString("cli_codigo"));//Essas duas linhas é necesária nome.setText(teste.resultset.getString("cli_nome")); // mostrar_dados(); //cb_pesquisa.setSelectedItem(tf_nome.getText()); } catch(Exception erro) { JOptionPane.showMessageDialog(null, "Não conseguiu localizar via digitação, erro = "+erro); } // TODO add your handling code here: }

Vc está pesquisando de um banco de dados???
se tiver seria mais facil montar uma query de pesquisa, usando o comando like…
faço isso com algumas aplicações e funciona blz…

:arrow:

java.lang.StringIndexOutOfBoundsException
Esse erro costuma acontecer quando você procura um dado em uma posição que não existe:
Por exemplo um você declara um Array com 3 posições
E tenta imprimir/utilizar a posição 4…

dando uma olhada por cima desse teu código tem quase certeza que eh algum problema com esse tamanho_pesquisa…
você ta pesquisando coisa a + do que deveria…

abraço.

como o amigo acima citou, o problema é devido a variavel tamanho_pesquisa.

amigo seu problema está na linha:

String pesquisado = teste.resultset.getString("cli_nome").substring(0,(tamanho_pesquisa));   

a variavel tamanho_pesquisa aponta para uma posição maior que o tamanho da string retornada por:

teste.resultset.getString("cli_nome")

esse codigo ta bem propenso a erros.

tb procure tambem sobre blueprints para nomear as variaveis de acordo com os padores e de forma mais legivel ex:

tamanho_pesquisa - tamanhoPesquisa

Metodos do prof Neri Neitzke… ja vi isso antes hehehe olha ai no meu funciona de boa

[code]

    con_cliente.executeSQL("select * from cliente where cli_nome like '"+tf_pesquisa.getText()
    +"%' order by "+ordenacao);
    preencher_jtable(); // filtrar na grade sem clicar no botao filtrar
    
    
    try
            
    {
        
        con_cliente.resultset.first();
        String igual = "n";
        int tamanho_pesquisa = tf_pesquisa.getText().length();
        while (igual == "n")

{

            String pesquisado = con_cliente.resultset.getString("cli_nome").substring(0,(tamanho_pesquisa));
            
            if(pesquisado.equals(tf_pesquisa.getText()))

{
igual = “s”;

            }

else
con_cliente.resultset.next();

        }
        // mostra conteudo da tabela
        tf_codigo.setText(con_cliente.resultset.getString("cli_codigo"));
        mostrar_dados();
        
    }
    
    catch(Exception erro)

{

        JOptionPane.showMessageDialog(null,"Não conseguiu localizar"+erro);
        
        
    }[/code]