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

Juego de memoria en java

Estas en el tema de Juego de memoria en java en el foro de Java en Foros del Web. Buenas a todos, actualmente termine de hacer un juego de memoria en java, lo hice con JButton y es el tipico juego que hay que ...
  #1 (permalink)  
Antiguo 02/07/2012, 00:48
 
Fecha de Ingreso: septiembre-2010
Mensajes: 41
Antigüedad: 13 años, 7 meses
Puntos: 0
Juego de memoria en java

Buenas a todos, actualmente termine de hacer un juego de memoria en java, lo hice con JButton y es el tipico juego que hay que adivinar la pareja.
El codigo del juego es relativamente corto, lo hice en una sola clase todo en un JFrame en Netbeans.

El único problema que no he logrado resolver es que al presionar el 2do JButton, me muestre la imagen durante 1 o 2 segundos para que el usuario vea que imagen es, y si coincide con la primera pues entonces desaparezco los dos JButton, y si no coinciden entonces solo les quito la imagen a los dos JButton

Como les comentaba que ya tengo toda la logica y el juego implementado y funciona como es, pero no logro que la 2da imagen se muestre durante 2 segundos.

Probe colocando el siguiente codigo en diferentes partes de mi aplicacion pero tampoco logro lo que quiero.


Código PHP:
Ver original
  1. try
  2. {
  3.    Thread.sleep (2000);
  4. }
  5. catch(Exception e)
  6. {
  7.    e.printStackTrace();
  8. }

alguien que me ayude por favor.
  #2 (permalink)  
Antiguo 02/07/2012, 01:26
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Juego de memoria en java

Hola:

En java hay un hilo que se encarga de atender los botones y de pintar. Si al pulsar el botón haces un Thread.sleep(), estas durmiendo ese hilo. Cualquier cosa que intentes pintar, no se pintará hasta que el hilo "despierte", por lo que lo más posible que te esté pasando es que la imagen se pinte y se borre todo de golpe al final de ese Thread.sleep(). La solución es crear un nuevo hilo de esta forma

Código:
codigo del boton () {
   mostrar imagen
   nuevo hilo que espere dos segundos {
      borrar imagen (este código dentro del hilo)
   }
}
mas detalles http://chuwiki.chuidiang.org/index.p...hread)_de_Java

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 03/07/2012, 00:32
 
Fecha de Ingreso: septiembre-2010
Mensajes: 41
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Juego de memoria en java

muchas gracias, voy a intentar hacerlo asi y comentare si me funcionó
  #4 (permalink)  
Antiguo 03/07/2012, 01:31
 
Fecha de Ingreso: septiembre-2010
Mensajes: 41
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Juego de memoria en java

Chuidiang dejame decirte que me funcionó al 100%, justo con esa forma logre lo que queria, eres un genio..
  #5 (permalink)  
Antiguo 03/07/2012, 19:48
 
Fecha de Ingreso: septiembre-2010
Mensajes: 41
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Juego de memoria en java

Cita:
Iniciado por chuidiang Ver Mensaje
Hola:

En java hay un hilo que se encarga de atender los botones y de pintar. Si al pulsar el botón haces un Thread.sleep(), estas durmiendo ese hilo. Cualquier cosa que intentes pintar, no se pintará hasta que el hilo "despierte", por lo que lo más posible que te esté pasando es que la imagen se pinte y se borre todo de golpe al final de ese Thread.sleep(). La solución es crear un nuevo hilo de esta forma

Código:
codigo del boton () {
   mostrar imagen
   nuevo hilo que espere dos segundos {
      borrar imagen (este código dentro del hilo)
   }
}
mas detalles http://chuwiki.chuidiang.org/index.p...hread)_de_Java

Se bueno.
Mira Chuidiang como ya te habia comentado que me habia funcionado perfectamente como habias dicho, ahora note otro pequeño problema: fijate que todo funciona bien cuando presiono el 2do JButton y espero 2 segundos para que dependiendo si coinciden o no las imagenes entonces desaparezcan los JButton o volver poner los iconos a null, PERO si presiono rapidamente boton tras boton, entonces la aplicacion ya no funciona correctamente, entonces lo que quisiera saber es como hacer para que durante esos dos segundos todos los botones queden desabilitados o no se les pueda dar click. de antemano gracias.
  #6 (permalink)  
Antiguo 03/07/2012, 21:22
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Juego de memoria en java

Los botones tienen métodos setEnabled(true/false). Llámalos dentro del mismo sitio donde muestras/ocultas la imagen.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: delay, jbutton, memoria, retardo
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 02:48.