Foros del Web » Programación para mayores de 30 ;) » Java »

[Consulta] Duda con un hilo

Estas en el tema de [Consulta] Duda con un hilo en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 09/02/2014, 20:47
 
Fecha de Ingreso: agosto-2013
Mensajes: 90
Antigüedad: 11 años, 2 meses
Puntos: 1
[Consulta] Duda con un hilo

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
  1. Runnable revolver = new Runnable() {
  2.             @Override
  3.             public void run() {
  4.                 try {
  5.                     for (int x = 0; x < 4; x++) {
  6.                         parejaAleatoria();
  7.                         jbtn_juegoNuevo.setEnabled(false);
  8.                         for (int y = 0; y < botonesParejas.length; y++) {
  9.                            
  10.                             botonesParejas[y].setActionCommand(Integer
  11.                                     .toString(posicionesImagenes[y]));
  12.                             botonesParejas[y].setIcon(getImagenPareja(Integer
  13.                                     .parseInt(botonesParejas[y]
  14.                                             .getActionCommand())));
  15.                         }
  16.                         Thread.sleep(300);
  17.                     }
  18.                     jbtn_juegoNuevo.setEnabled(true);
  19.                 } catch (InterruptedException iex) {
  20.  
  21.                 }
  22.  
  23.             }
  24.         };
  25.         Thread hilo = new Thread(revolver);

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 original
  1. private void nuevoJuego() {
  2.        
  3.         parejaAleatoria();
  4.         for (int x = 0; x < botonesParejas.length; x++) {
  5.             botonesParejas[x].setEnabled(true);
  6.             botonesParejas[x].setActionCommand(Integer
  7.                     .toString(posicionesImagenes[x]));
  8.             botonesParejas[x].setIcon(getImagenPareja(Integer
  9.                     .parseInt(botonesParejas[x].getActionCommand())));
  10.         }
  11.  
  12.         hilo.start();
  13.  
  14.         tiempo.schedule(task, 0, speed);
  15.  
  16.         intentos = 200;
  17.         jlbl_intentos.setText(Integer.toString(intentos));
  18.         primerToque = false;
  19.     }

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.

Etiquetas: hilo, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:40.