Programacion Juego - Java

Hola compañeros tengo algunos problemas al querer programar un juego en java, bueno en realidad mi problema empieza al querer comparar dos imagenes que tengo en los JButton.

 

Aqui esta el codigo de todo lo que eh realizado hasta hoy

 

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de neko069

Podrías publicar el

Podrías publicar el stacktrace de tu error?
Podrías ser más descriptivo?
Podrías colocar tu código entre tags de <code> y </code>

Imagen de arterzatij

y por que...

comparar imagenes y no mejor un tipo de dato mas facil de comparar...

te recomiendo un enum si no son muchas las imagenes y dentro del enum alamcenas la ruta de dicha imagen...

ok gracias por la aportacion

ok gracias por la aportacion amigo en un momento corrigo

Más bien si las compara y

Más bien si las compara y siempre dice que no son iguales.

1. Intenta debugguear o imprimir el valor que tiene en ese momento
 
y
 
Para que visualmente compares si son o no distintos, probablemente el método   esté imprimiendo algún dato extra (como la hora de creación) que los hace distintos siempre y aún no te has dado cuenta.

 

2. Un punto de mejora. El código que tienes para las canicas 1, 2, 3, 4 y es idéntico ( o casi ) y solo varía la canica a la cual se le pone la imagen. Mejor sería usar un solo código y no hace copy/paste

 

Y puedes asociar ese listener para los cuatro botones.

Más aún, si solo los botoner canica tienen ese listener, ni siquiera hay que comparar si el source es originado por ese botón:

 

En vez de Math.random() * 6 utiliza la clase random para el número aleatorio:

 

Ni siquiera hace falta almacenar ese número:

 

O el URL

 

O la imagen:

 

Ya exagerando , ni siquiera la canica:

 

Aunque este último ya no es tan legible, mejor sería:

 

Y llegando a este punto la pregunta que surge es: ¿porque crear cada vez la imagen si siempre van a ser 6, mejor sería crearlas todas desde el principio:

 

Y así el código del   ya no queda tan ridículo, ahora solo sería:

 

Además que se están creando las imagenes desde el principio, y el programa es más eficiente al no crear nuevos objetos que representan lo mismo cada vez.

Tu comparación podría ser ahora:

 

3. Por último, en Java la convención es que solo el nombre de las clases comiencen con mayúsculas, los métodos y variables van con minúsculas y sin guiones bajos:

 

Pero, primero fíjate bien porque no esta comparando correctamente dos cadenas, al imprimir su valor.

Muchas gracias por tu

Muchas gracias por tu respuesta, me ayudo de mucho espero un día poder aportar tanto como tu lo hiciste gracias y ya estoy en esto, y también gracias por la convención en Java.

realice este codigo private

realice este codigo

 

y este fue el resultado al dar clic al Boton las imagenes eran las mismas pero al parecer guarda una URL diferente o una direccion en memoria diferente
 

Yeap, por eso nunca evalua

Yeap, por eso nunca evalua como cierto que la imagen uno y la imagen dos son iguales.

Intenta comparando las imagenes en vez de su string

 

aun en las mismas amigo sigo

aun en las mismas amigo sigo sin poder comparar las imágenes un amigo me dijo que con un método de mnemonicos O.o en realidad se me hizo raro pero mañana veré eso a y por cierto aun no he podido comprender muy bien tu código espero me puedas contactar, te dejo mi correo felipe.0707@hotmail.com, Saludos y gracias por responder :D.

Y porque no por aquí? Así si

Y porque no por aquí?

Así si alguien tiene algún problema similar lo puede ver en el foro.

Trata de aislar el problema, haz algo como esto:

 
Eso se puede ayudar a entender porque lo que crees que es verdadero no lo está siendo.

Saludos.

Muchas gracias por tu ayuda

Muchas gracias por tu ayuda al fin pude realizar la comparación atreves de Mnemonicos ahora no se si conozcan alguna función para poder des habilitar pero que la imagen que tenga el botón no sea a escala de grises, es decir des habilito el botón pero la imagen que tiene se vuelve a escala de grises y eso es lo que no quiero lo que quiero es que la imagen conserve su color original pero que el botón ya no funcione no se si me doy a entender

Unas cuantas comas m'as

Unas cuantas comas m'as hubieran ayudado jejejej.

Si, lo unico que tienes que hacer es quitarle el ActionListener al boton.

No veo porque no te funcionaba el codigo antes, o porque habrias de comparar por mnemonicos, pero que bueno que ya te funciono.