Como Transaformar isso em uma repetição(loop)

13 respostas
W

Iae pessoal blz… estou tentando fazer o cadigo abaixo virar um loop… pode ser while ou for… desde q isso vire um loop , rsrsrs… mas ñ conegui…

txt1.setText(vetor[1]); txt2.setText(vetor[2]); txt3.setText(vetor[3]); txt4.setText(vetor[4]);

verifiquem que o “indice” do JText é o mesmo do array…

vlw…

13 Respostas

maior_abandonado

estude reflection…

com isso vc cria uma string contendo o nome do metodo a ser usado e chama ele a partir da string, tem alguns exemplos aqui no guj.

e como vc ja vai imaginar sozinho, é só aumentar o numero de acordo com o indice do loop.

acaba saindo mais complicado do que da os ctrl c e ctrl v, a menos que sejam muitos txt"x", mais é bem legal de aprende.

ou então simplesmente ao inves de cria um monte de JTextField com nome diferente cria um array de JTextField, e concatena o indice do array (mto mais facil e usavel…rs)

malves_info
for(int i=0; i < vetor.length; i++){
    
       txt1.setText(vetor[i]);  
       txt2.setText(vetor[i]);  
       txt3.setText(vetor[i]);  
       txt4.setText(vetor[i]); 
}

ou

int i=0;
while(i < vetor.length){
    
       txt1.setText(vetor[i]);  
       txt2.setText(vetor[i]);  
       txt3.setText(vetor[i]);  
       txt4.setText(vetor[i]); 
       i++
}

Flw! Espero ter ajudado

Kassiane_Pretti

Testa ae esse aqui, acho q vai não cheguei a testar não

for(int i = 1; i<5; i++)
   vetorComNomeDaVariavel[i].setText(vetor[i]);
maior_abandonado

malves tem um erro de logica ai no codigo q vc coloco.

repare que ao fazer isso, supondo que o vector tenha os numeros 1 2 3 e 4

vc insere 1 em todos
vc depois insere 2 em todos
vc depois insere 3 em todos
vc depois insere 4 em todos

repare que não foi bem isso o pedido.

W

entao… realmente eu pensei em transformar isso em um array de JTextField… mas eu sou iniciante em java e não sei como fazer isso… rsrs

Kassiane_Pretti

É só criar um array do tipo string, ai vc insere o nome dos JTextField nele.
Ai depois é só usar!

maior_abandonado

como criar:

JTextField[] campo = new JTextField[16];

como instanciar:

for (int i=0;i<16;i++){

campo[i]=new JTextField();

}

supondo que vc vai criar 16 objetos…

repare a diferença entre [] e (), sem o for vc até compila, mais ao tentar executar vc vai ter um null pointer (cabei de etsta isso)

peczenyj

reflection ?

Abdon

Nunca na minha vida tinha visto tamanha qualidade de respostas!

Reflecton???

# for(int i=0; i < vetor.length; i++){  
#   
#     txt1.setText(vetor[i]);    
#     txt2.setText(vetor[i]);    
#     txt3.setText(vetor[i]);    
#     txt4.setText(vetor[i]);

O que sera que passou pela cabeça deste ai??

Agora esta foi a unica resposta que merece ser lida…

# for(int i = 1; i<5; i++)  
#    vetorComNomeDaVariavel[i].setText(vetor[i]);

Meu deus…

sergiotaborda

William Morais:
Iae pessoal blz… estou tentando fazer o cadigo abaixo virar um loop… pode ser while ou for… desde q isso vire um loop , rsrsrs… mas ñ conegui…

txt1.setText(vetor[1]); txt2.setText(vetor[2]); txt3.setText(vetor[3]); txt4.setText(vetor[4]);

verifiquem que o “indice” do JText é o mesmo do array…

Não crie objetos JText dessa forma se vc os quer iterar depois. Java não é VB. Crie a interface programáticamente.
Depois é só usar um for e pronto.

malves_info

Foi mal galera acho que erros todos cometem ate os mais ridiculos que nem este. Problema que fiz na correria e sem testar erro meu, desculpa ae ao amigo que estava com a duvida corrigindo:

for(int i=0; i < vetor.length; i++){  
   
     jText[i].setText(vetor[i]);
}

Mais calmo agora ovelha?
E maior_abandonado valeu pela obs. e educação :smiley:

W

hehe pessoal sem confusão… td mundo tem direito d errar e concertar… opa consertar(rsrs) os erros, mas d boa… ja consegui resolver meus problemas… vlw…

maior_abandonado

bom…o que ele queria se eu intendi bem a pergunta era chamar o metodo atravez do nome do mesmo, dinamicamente, mudando apenas o numero contido no nome, incrementando-o…

se me lembro bem a tecnologia capaz de chamar um metodo passando uma string contendo o nome do metodo é essa, pelo metodo invoke(posso estar enganado, sou meio iniciante em programação)…

http://www.guj.com.br/posts/list/76010.java

agora, em relação a viabilidade disso, é por isso que eu falei que era melhor usar um array, e inclusive citei o exemplo de como fazer


ou então simplesmente ao inves de cria um monte de JTextField com nome diferente cria um array de JTextField, e concatena o indice do array (mto mais facil e usavel…rs)

eu posso estar errado no que falei, mais honestamente não vi onde errei e inclusive considero muito mais etico, “informar a alguem que ele errou” e preferencialmente onde errou do que critica-lo… (talves teria visto caso ao inves de criticar alguem tivesse me dito isso)

Criado 11 de janeiro de 2008
Ultima resposta 14 de jan. de 2008
Respostas 13
Participantes 7