Sí probé a ejecutarlo y lo que me sorprendió es que cuando daba a la checkbox de automático se generaban los números aleatorios sin producirse ninguna excepción, por lo que el programa es totalmente funcional.Y eso es lo que me trae de cabeza, ya que como mi poca experiencia en java, veo que ese código no está del todo bien y aún así hace lo que se le pide.
Yo personalmente creo que para que ese código estuvies bien, antes del do while tendría que haber dado un valor al azar a gui.numeros[0] y luego el resto del código lo habría dejado como está. Algo como esto:
Código Java:
Ver originalpublic void itemStateChanged
(ItemEvent event
) { Object item
= event.
getItem(); if (item == gui.automatico) {
for (int i = 0; i < 6; i++) {
int eleccion;
//Estás dos lineas que hay a continuación son las que yo habría añadido antes de hacer el do while
eleccion
= (int) Math.
floor(Math.
random() * 50 + 1); gui.numeros[0].setText(""+eleccion);
do {
eleccion
= (int) Math.
floor(Math.
random() * 50 + 1); } while (numeroRepetido(eleccion, gui.numeros, i));
gui.numeros[i].setText("" + eleccion);
}
} else {
for (int i = 0; i < 6; i++) {
gui.numeros[i].setText(null);
}
}
}
boolean numeroRepetido
(int num,
JTextField[] pastNums,
int count
) { //Compara cada número que vaya sacando con los que ya hayan salido y devuelve true o false según esté repetido o no.
for (int i = 0; i < count; i++) {
if (Integer.
parseInt(pastNums
[i
].
getText()) == num
) { return true;
}
}
return false;
}
}