Sortear aleatoriamente cada String num JLabel

7 respostas Resolvido
java
P

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="//www.guj.com.br/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

R

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

P

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.

P

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

R

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));
}
R

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

P

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.

P
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