Sortear aleatoriamente cada String num JLabel

7 respostas Resolvido
java
PapaiLu

Olá. Sou novo em Java e preciso da sua ajuda.
Estou num projeto onde: Tenho 04 JLabel (Resp1, Resp2, Resp3 e Resp4) que devem receber ALEATÓRIAMENTE um texto cada um.
Obs.: eu já tenho os valores (String) para cada um (tRes1, tRes2, tRes3, tRes4):

JLabel resp1    = new JLabel("00",JLabel.CENTER);
JLabel resp2    = new JLabel("00",JLabel.CENTER);
JLabel resp3    = new JLabel("00",JLabel.CENTER);
JLabel resp4    = new JLabel("00",JLabel.CENTER);

Só consegui isso:

resp1.setText(tRes0);
    resp2.setText(tRes1);
    resp3.setText(tRes2);
    resp4.setText(tRes3);

Obrigado.

Muito parecida a minha dúvida com esta aqui.

<aside class="quote" data-post="1" data-topic="71907">
  <div class="title">
    <div class="quote-controls"></div>
    <img alt="" width="20" height="20" src="/user_avatar/www.guj.com.br/groove/40/11158_1.png" class="avatar">
    <a href="/t/resolvido-instanciar-objetos-dentro-de-um-loop/71907?source_topic_id=372938">[Resolvido]Instanciar objetos dentro de um loop</a> <a class="badge-wrapper  bullet" href="/c/programacao/java">Java</a>
  </div>
  <blockquote>
    Tenho a seguinte classe:  

 class Funcionario
{
    String nome;
}

Para instanciar objetos desta classe, faço assim:  

 Funcionario funcionario1 = new Funcionario();
Funcionario funcionario2 = new Funcionario();
Funcionario funcionario3 = new Funcionario();

Gostaria de instanciar estes objetos dentro de um loop, de forma a facilitar o serviço. Como ficaria? Não consigo entender como seria alterado o nome da variável referencia..  

 for(int i=0;i<10;i++)
{
    //criar os objetos
}
  </blockquote>
</aside>

7 Respostas

rodriguesabner

Continuando a discussão do Sorteio de String sem repetição:

PapaiLu

Hei Abner, nem sei se posso conversar aqui, mas não é bem isso que preciso.
Eu tenho os jlabel, cada um com nomes diferentes e preciso de uma forma de sortear o conteúdo entre eles.
image

Estes resultados (quadros na cor cyano)
preciso fazer um sorteio entre eles para depois apresentarna tela.

PapaiLu

Outra coisa seria SORTEAR os resultados entre os 04 jlabel, só não quero é ter os resultados na mesma POSIÇÃO sempre.

rodriguesabner

Fiz um exemplo bem básico, não sei se ainda é o que você quer, dá uma olhada:

Sem%20t%C3%ADtulo

public void gerarNumero() {
    int n1, n2, n3, n4;
    Random gerar = new Random();
    n1 = gerar.nextInt(100);
    n2 = gerar.nextInt(200);
    n3 = gerar.nextInt(300);
    n4 = gerar.nextInt(400);
    campo1.setText(String.valueOf(n1));
    campo2.setText(String.valueOf(n2));
    campo3.setText(String.valueOf(n3));
    campo4.setText(String.valueOf(n4));
}

Aí vc pode ir colocando operações pra ficar mais variado:

public void gerarNumero() {
    int n1, n2, n3, n4;
    Random gerar = new Random();
    n1 = gerar.nextInt(100) + 1;
    n2 = gerar.nextInt(200) * 2;
    n3 = gerar.nextInt(300) / 3;
    n4 = gerar.nextInt(400) * 400 - 7;
    campo1.setText(String.valueOf(n1));
    campo2.setText(String.valueOf(n2));
    campo3.setText(String.valueOf(n3));
    campo4.setText(String.valueOf(n4));
}
rodriguesabner

AHHHHHHHHHHHHHHHHHHHHHH, acho que entendi, você quer colocar os possíveis resultados nos campos em Cyano? Desculpa amigo, eu não tinha entendido!

Vê se esse post te ajuda: https://www.vivaolinux.com.br/topico/Java/Programa-de-Sorteio

PapaiLu

kkkkk não ajudou n.
Mas não vou desisti
To pensando em colocar os resultados em um array e embaralhar este array ai depois colcoar os valores nos jlabel.
Sei que dá pra fazer assim.

thanks.

PapaiLu
Solucao aceita

Olá. Consegui um bom resultado assim:

//-----------------------------

nres.add( qr1 * qr2 ); //<-coloquei o resultado certo numa posição de array

for (int i = 1;i <= 10;i++){ <- coloquei TODOS os resultados possíveis noutro array (ntabuada)

ntabuada.add(qr1*i);   }

//-----------------------------

for (int i = 1;i <= 3;i++) { <- criei um NOVO arraylist para reagrupar  04 resultados

int qres = gerador.nextInt(ntabuada.size());

nres.add( qres );       }

//-----------------------------

Collections.shuffle( nres ); <- isso faz o EMBARALHAMENTO que eu precisava

E a partir daqui formatei os valores e coloquei nos jlabel. E parece que ficou bom.

Obrigado a todos. Vocês são mesmo demais.
image

Criado 6 de agosto de 2018
Ultima resposta 7 de ago. de 2018
Respostas 7
Participantes 2