Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/05/2012, 13:12
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: click en Jlabel y click en GridLayout!!!

Puedes añadir un MouseListener a los Label. Puedes añadir el mismo MouseListener a todos los label, el método getSource() del MouseEvent te puede ayudar a identificar el JLabel concreto.

Otra opción es añadir el MouseListener al panel (no al GridLayuout). Los métodos getPoint(), getX() o getY() del mouseevent te ayudan a saber las coordendas en las que se ha hecho click (el 0,0 es la esquina superior izquierda del panel). Tendrías que "calcular" a que JLabel corresponde. El getBounds() de cada label te puede ayudar a indentificar dónde está colocado el JLabel respecto al panel.

Es más sencilla y segura la primera opción, sólo necesitas un mismo MouseListener para todos los JLabel y se puede añadir fácilmente si has hecho bucles para crear los JLabel. Además, JLabel tiene un metodo setName() y luego, con ((JLabel)mouseEvent.getSource()).getName() puedes identificar ese nombre. El nombre puede ser cualquier cosa que te ayude luego a identificar mejor el JLabel (el nombre de la pieza que tiene dibujada, la fila,columna en el tablero, etc)

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Última edición por chuidiang; 17/05/2012 a las 13:18