estou querendo que em um frame quando for selecionado a pergunta certa. seja sorteado de um ArrayList a proxima pergunta. eu fiz só q imprime todos os labels de teste q fiz.
quando selecionado o botao correto o seguinte metodo eh chamado:
Não use Vector, nem variáveis static.
Você poderia ter usado só o ArrayList, que é bem melhor.
Para sortear, você tem 2 opções:
a) Se você não quer perguntas repetidas: Use o método Collections.shuffle para embaralhar uma lista. Em seguida, é só pegar cada elemento da lista em ordem.
b) Se você pode repetir: Nesse caso, use a classe Random para sortear um dos índices da lista;
Marcello360
ficaria mais ou menos assim neh?
so que nao consigo limitar o "po" dentro do for.. pra um intervalo de 0-4.
voidsortearPergunta(){
Perguntasper=newPerguntas();per.pergunta1();Perguntasper2=newPerguntas();per2.pergunta2();Perguntasper3=newPerguntas();per3.pergunta3();Perguntasper4=newPerguntas();per4.pergunta4();ArrayList<Perguntas>po=newArrayList<Perguntas>();po.add(0,per);po.add(1,per2);po.add(2,per3);po.add(3,per4);Collections.shuffle(po);Randomop=newRandom(4);for(inti=0; i <1; i++) {po.get(op.nextInt());}
ViniGodoy
É só passar 4 no parâmetro do nextInt():
po.get(op.nextInt(4));
E retire o 4 da inicialização do Random, essa é a semente que define os números que serão gerados. Se deixar ele lá as perguntas sempre serão sorteadas na mesma ordem.
Marcello360
eu fiz o que tu me mandou mais ainda chama todos os labels da classe pergunta. Nao seria necessario fazer alguma alteração na classe nao??
vlw pelas respostas!