Botones con Imágenes
Estoy implemetando un juego de Simon en Java. Primera vez que trabajo en este lenguaje así que se me ha hecho algo complicado. Tengo 4 botones de distintos colores. Estoy utilizando por cada botón 2 imágenes para dar efecto de que los botones se pulsan. Para lograr esto, ultilice el siguiente código por cada botón en la función ActionPerformed:
//Imagen del boton
Runnable miRunnable = new Runnable()
{
public void run()
{
try
{
botonRojo.setIcon(new ImageIcon("imagenes/rojo.jpg"));
Thread.sleep(150);
botonRojo.setIcon(new ImageIcon("imagenes/rojo1.jpg"));
}
catch (Exception e)
{
e.printStackTrace();
}
}
};
Thread hilo2 = new Thread (miRunnable);
hilo2.start();
Todo funciona bien cuando se presionan los botones, pero a veces cuando es el turno de la maquina de mostrar la secuencia de botones las imágenes se descuadran y aparecen en un lugar de ventana fuera del botón. Ademas también me ocurre que se cambia la imagen de un botón por la de la siguiente imagen en la secuencia. Es decir, si esta en acción el botón rojo, y el siguiente es el azul, en el lugar del rojo se pone el azul...
Espero haberme explicado un poco, la verdad no se a que se debe... No se si tenga que ver con los hilos...
//Imagen del boton
Runnable miRunnable = new Runnable()
{
public void run()
{
try
{
botonRojo.setIcon(new ImageIcon("imagenes/rojo.jpg"));
Thread.sleep(150);
botonRojo.setIcon(new ImageIcon("imagenes/rojo1.jpg"));
}
catch (Exception e)
{
e.printStackTrace();
}
}
};
Thread hilo2 = new Thread (miRunnable);
hilo2.start();
Todo funciona bien cuando se presionan los botones, pero a veces cuando es el turno de la maquina de mostrar la secuencia de botones las imágenes se descuadran y aparecen en un lugar de ventana fuera del botón. Ademas también me ocurre que se cambia la imagen de un botón por la de la siguiente imagen en la secuencia. Es decir, si esta en acción el botón rojo, y el siguiente es el azul, en el lugar del rojo se pone el azul...
Espero haberme explicado un poco, la verdad no se a que se debe... No se si tenga que ver con los hilos...
Respuesta de alejosoft
1