Problemas na hora de setar valores em varios textfilds

Boa noite galera, estou com um grande problema na hora de setar os dados que tenho na memoria jogados pelo banco, que estão na variavel cons,

String cons = "select * from cad_clientes where cod ="+ TxtCadCliCodigo.getText(); String[] campos = {"NOME","CPF","RG","RUA","N","BAIRRO","TELEFONE1","TELEFONE2","EMAIL","consultaspc","OBS"}; cons = con.fazerConsultaBanco(cons, campos);

se eu der um System.out.prinln(cons);
ele vai preencher tudo na mesma linha com separação com ;

como faço para os meus dados ir de 1 a 1 para varias jTextFilds?

agradeço a ajuda galera :smiley:

oi,

Vc poderia usar vinculação de beans.
Segue um tutorial:
http://netbeans.org/kb/docs/java/gui-binding_pt_BR.html
http://netbeans.org/kb/docs/java/gui-db_pt_BR.html

galera o que eu preciso pra mim é muito mas para muito é pouco,

é simplesmente jogar dados armazenados em um vetor em algumas jtextefields sem os ;

eu consegui faze essa façanha criando uma StringTokenizer st = new StringTokenizer(cons, “;”); e jjogando sempre o proximo valor para a proxima area, mas se ficar uma em branco no meio pifa tudo…

Faz manual por exemplo

jTextField1.setText(cons[0]);
jTextField1.setText(cons[1]);
jTextField1.setText(cons[2]);
jTextField1.setText(cons[3]);

assim por diante definindo claro qual o jTextField que irá receber determinado retorno do select.

Desculpe, mas isto não ajuda em nada.
Ninguém aqui no guj tem a obrigação de responder.
Depois, esta pergunta já foi realizada várias vezes, basta dar uma simples pesquisada aqui ou até mesmo no google.

A solução apontada pelos colegas de GUJ é muito mais viável e inteligente. Vincular beans seria o ideal, usar um array para isto não é uma boa prática de programação.
Mas, se há a necessidade (ou você quer fazer isto desta forma), pode indicar manualmente qual textfield receberá o valor correspondente do array.

[quote=Giboty]Faz manual por exemplo

jTextField1.setText(cons[0]);
jTextField1.setText(cons[1]);
jTextField1.setText(cons[2]);
jTextField1.setText(cons[3]);

assim por diante definindo claro qual o jTextField que irá receber determinado retorno do select.
[/quote]

o meu velho eu tentei fazer exatamente oque vc dice mas nao rolou

[code] String cons = “select * from cad_clientes where cod =”+ TxtCadCliCodigo.getText();
String[] campos = {“NOME”,“CPF”,“RG”,“RUA”,“N”,“BAIRRO”,“TELEFONE1”,“TELEFONE2”,“EMAIL”,“consultaspc”,“OBS”};
cons = con.fazerConsultaBanco(cons, campos);

      TxtCadCliNome.setText(cons[0]);[/code]

e quanto o nosso amigo drsmachado relacha ae meu, eu to com uma duvida ninguem é obrigado a responder.

Eu estou bem relaXado.
Por que não rolou?
Qual a dificuldade?
Posta teu código todo aí?

String cons = “select * from cad_clientes where cod =”+ TxtCadCliCodigo.getText();
String[] campos = {“NOME”,“CPF”,“RG”,“RUA”,“N”,“BAIRRO”,“TELEFONE1”,“TELEFONE2”,“EMAIL”,“consultaspc”,“OBS”};
cons = con.fazerConsultaBanco(cons, campos);
StringTokenizer st = new StringTokenizer(cons, “;”);

//tentei de duas maneiras 1°

    int x1 = 0;
    while(st.hasMoreElements()){
        TxtCadCliObs.setText(st.nextToken());
        TxtCadCliEmail.setText(st.nextElement().toString());
        x1 ++;

// segunda

TxtCadCliCpf.setText(cons[1]);
TxtCadCliRg.setText(cons[2]);
TxtCadCliRua.setText(cons[3]);
}

E quanto ao uso de split e colocar em um array de string?
Após isto, preencher os textfields com cada elemento correspondente, assim, todos os dados que vierem em branco não irão afetar a continuidade da coisa.

o problema que eu ainda nao saquei como faria com slipt.
tem como me dar um exemplo ?

String exemplo = "aa;bb;cc;dd;ee;ff;gg;";
String[] arrExemplo = exemplo.split(";");

jTextFieldExemplo1.setText(arrExemplo[0]);
jTextFieldExemplo2.setText(arrExemplo[1]);
jTextFieldExemplo3.setText(arrExemplo[2]);
jTextFieldExemplo4.setText(arrExemplo[3]);
jTextFieldExemplo5.setText(arrExemplo[4]);
jTextFieldExemplo6.setText(arrExemplo[5]);
jTextFieldExemplo7.setText(arrExemplo[6]);

Explicando:
o método split(“regex”); da classe String recebe como parâmetro um regex (funciona com caracteres também, entre aspas duplas) e, ao ser executado, “quebra” a string original em partes. O retorno é um array do tipo String cujo tamanho é determinado pelo número de substrings separadas pelo regex houverem na string que chama o método.

o meu velho oque tu me passo intendi show de bola, mas o problema é este

[code] String cons = “select * from cad_clientes where cod =”+ TxtCadCliCodigo.getText();
String campos = “NOME;CPF;RG;RUA;N;BAIRRO;TELEFONE1;TELEFONE2;EMAIL;consultaspc;OBS”;
String[] arrExemplo = campos.split(";");
cons = con.fazerConsultaBanco(cons, arrExemplo);

    TxtCadCliNome.setText(arrExemplo[0]);[/code]

não bomba ele escreve na tela NOME

Sim, pois você está quebrando a String campos. e o primeiro elemento dela é “NOME”.
Não sei como está tua consulta no banco de dados (o ResultSet não retorna uma String).
Quando fizer a consulta é que você vai obter os dados para preencher as textfields.
Quando eu usava este tipo de coisa (sim, já usei) fazia o seguinte, na classe que pegava os dados do bd:

public String consutaBd(String cons){
ResultSet rs = stm.execute(cons);
String str = "";
while(rs.next()){
  str += rs.getString(1) + "º";
  str += rs.getString(3) + "º";
  str += rs.getString(2) + "º";  
  ...
}
 return str;

E pegava, na classe que manipulava as textfields:

 ...
 String cons = "select * from cad_clientes where cod ="+ TxtCadCliCodigo.getText();  
 String res = classeDeConsulta.consultaBd(cons);
        String[] arrExemplo = res.split(";");
        TxtCadCliNome.setText(arrExemplo[0]); 

a minha classe de fazer consulta é assim

public String fazerConsultaBanco(String SQL, String[] campo){ String resultado = ""; try{ PreparedStatement smtm = (PreparedStatement) this.conn.prepareStatement(SQL); ResultSet rs = smtm.executeQuery(); while (rs.next()) { for(int x = 0; x < campo.length; x++) resultado += rs.getString(campo[x]) + ";"; } rs.close(); smtm.close(); }catch(SQLException sqle){ JOptionPane.showMessageDialog(null,"Não foi pssível executar a consulta sql "+sqle+", comando sql passado.: "+SQL); } /* * O método retornará uma String formatada assim: XX;XXX;XXX ou seja, separada por ; * Usar uma StringTokenizer para pegar os valores. * Ex: String str = cc.fazerConsultaBanco("SELECT CAMPO FROM TABELA","CAMPO"); StringTokenizer st = new StringTokenizer(str,";"); while(st.hasMoreElements()) System.out.println("Campo: " + st.nextElement()); */ return resultado;

o problema que ele necessita um campo[]

[code] String cons = “select * from cad_clientes where cod =”+ TxtCadCliCodigo.getText();
String[] campos = {“NOME”,“CPF”,“RG”,“RUA”,“N”,“BAIRRO”,“TELEFONE1”,“TELEFONE2”,“EMAIL”,“consultaspc”,“OBS”};
cons = con.fazerConsultaBanco(cons, campos);

    String exemplo = cons;
    String[] arrExemplo = exemplo.split(";");

    TxtCadCliNome.setText(arrExemplo[0]);[/code]

oo meu velho fiz assim e funfo, teria algum jeito mais simples?

muito obrigado pela ajuda irmao

quer mais simples do que isso?!?