Hola.
Estoy haciendo un juego de memoria, cuando se pulsa el boton "Juego nuevo" intento simular el efecto de revolver las fichas y luego poner imagen por defecto a todas.
Como he utilizado el método Thread.sleep(); entonces he creado un hilo para que haga el efecto de revolver.
Aqui como lo he creado:
Código Java:
Ver original @Override
public void run() {
try {
for (int x = 0; x < 4; x++) {
parejaAleatoria();
jbtn_juegoNuevo.setEnabled(false);
for (int y = 0; y < botonesParejas.length; y++) {
botonesParejas
[y
].
setActionCommand(Integer .toString(posicionesImagenes[y]));
botonesParejas
[y
].
setIcon(getImagenPareja
(Integer .parseInt(botonesParejas[y]
.getActionCommand())));
}
}
jbtn_juegoNuevo.setEnabled(true);
}
}
};
Lo que pasa es que luego cuando hago uso del método "nuevoJuego();" yo llamo al método start del hilo.
Código Java:
Ver originalprivate void nuevoJuego() {
parejaAleatoria();
for (int x = 0; x < botonesParejas.length; x++) {
botonesParejas[x].setEnabled(true);
botonesParejas
[x
].
setActionCommand(Integer .toString(posicionesImagenes[x]));
botonesParejas
[x
].
setIcon(getImagenPareja
(Integer .parseInt(botonesParejas[x].getActionCommand())));
}
hilo.start();
tiempo.schedule(task, 0, speed);
intentos = 200;
jlbl_intentos.
setText(Integer.
toString(intentos
)); primerToque = false;
}
La primera vez que se ejecuta el hilo si lo corre bien, pero cuando vuelvo a empezar otro juego me tira IllegalThreadStateException. El error se da cuando llamo al método start();
¿como podría para crear un hilo que se ejecute cada vez que quiero simular el efecto de revolver?
Muchas gracias.
PD: He utilizado un hilo aparte ya que si utilizo Thread.sleep(); me detiene todo el hilo principal.