Como fazer para uma variavel se tornar parte do código?

Estou com problemas para escrever um loop que escolhe 6 carta aleatória e coloca sua respectiva imagem em um botão.

para isso eu queria usar os nomes dos botõe jButton2, jButton3, jButton4 … Jbutoon7.

Olha o codigo que eu estava tentando

private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) { int i; for(i=2;i<=7;i++){ int jogadorA; int naipeA; jogadorA = redondo(Math.random()*13); // Retorna numero aleatório arredondado pelo método (redondo) retornando a carta de A e de B naipeA = redondoNaipe(Math.random()*2); jButton[i].setIcon(new javax.swing.ImageIcon("C:\Curso Java 1\Jogo baralho\cartasimg\"+jogadorA+"_"+naipeA+".JPG")); } }

Cara não entendi muito bem o que vc quer fazer e o seu codigo está meio confuso:
Se eu entendi bem, vc quer as imagens dos botoes sejam escolhidas aleatoriamente…vendo o seu codigo eu dei uma arrumada…tenta assim:

private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) { int i; for(i=0;i&lt6;i++){ int jogadorA; int naipeA; Random random = new Random(); jogadorA = redondo(random.nextInt(6)); // Retorna numero aleatório arredondado pelo método (redondo) retornando a carta de A e de B naipeA = redondoNaipe(random.nextInt(6)); jButton[i].setIcon(new javax.swing.ImageIcon("C:\Curso Java 1\Jogo baralho\cartasimg\" +jogadorA+ "_" +naipeA+ ".JPG")); }

wag182, o que está dando problema para mim é a linha

jButton[i].setIcon(...

os nomes dos botões são jButton2, 3, 4 e assim por diante.

o que eu queria saber é se a variavel:

int i;

poderia ser usada para nomear os botões, já que isso é um loop.

Está correto usar o [i] dentro de colchetes para este caso ?

Nao amigo, nao da pra fazer assim não… O compilador não vai entender que você está querendo concatenar o i com o nome da variável. Para funcionar assim você precisaria ter um array de JButtons, algo mais ou menos assim:

JButton[ ] buttons  = {jButton1, jButton2, jButton3};

para um array com 3 jButtons.

Você pode acessar cada um assim

buttons[0].setIcon(...);

aqui vc estaria setando o icone do jButton1.

Desse jeito fica fácil pra vc colocar em um for, como esta no seu codigo mesmo :slight_smile:

    private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {  
    int i;  
    JButton[]  buttons = {jButton1, jButton2, jButton3, jButton4, jButton5};
    for(i=2;i<=7;i++){  
         int jogadorA;  
       int naipeA;  
         jogadorA = redondo(Math.random()*13); // Retorna numero aleatório arredondado pelo método (redondo) retornando a carta de A e de B    7.      naipeA = redondoNaipe(Math.random()*2);  
        buttons[i].setIcon(new javax.swing.ImageIcon("C:\Curso Java 1\Jogo baralho\cartasimg\"+jogadorA+"_"+naipeA+".JPG"));  
    }  

Valew Cassio, éra isso mesmo que eu queria saber.

só tem um problema, eu não sei o que estou fazendo errado, maz ele da erro na linha da definição da array.

JButton[]  buttons = {jButton1, jButton2, jButton3, jButton4, jButton5}; 

a mensagem é: cannot find symbol

[quote=Zumblick]Valew Cassio, éra isso mesmo que eu queria saber.

só tem um problema, eu não sei o que estou fazendo errado, maz ele da erro na linha da definição da array.

JButton[]  buttons = {jButton1, jButton2, jButton3, jButton4, jButton5}; 

a mensagem é: cannot find symbol[/quote]

Declara o array fora desse seu método, como um atributo da classe…
Deve ser alguma coisa com o nome dos botoes e tal…

Agora funcionou, faltava um improt

import javax.swing.JButton;

pelo menos foi o que estava dizendo o NetBeam