Hola,
La clase java.awt.Canvas es un java.awt.Component y no puede contener otros componentes. Así que seguramente todo el dibujado de la clase Casilla lo haces sobrecargando el método paint(); y seguramente en la clase Tablero también, por lo que los eventos del mouse van a ser recibidos solamente por la clase Tablero.
Solamente lo va a recibir el canvas Tablero porque seguramente lo agregaste al Frame con add(); pero las casillas no, por lo que no existen en la jerarquía de componentes contenidos en el Frame.
Realmente deberías usar java.awt.Panel para el Tablero y agregar los java.awt.Canvas (Casillas) con add() dentro de él (Tablero) además de usar un gridLayout para poder recibir los eventos del mouse independientemente en cada casilla.
Sino no te queda mas que calcular las coordenadas donde se recibió el evento y llamar algún método dentro de la clase Casilla que realice la acción.
Saludos,
ps:
Por ejemplo:
Código Java:
Ver originalpanelS = new Tablero(); // Clase que extiende java.awt.Panel
celdaA = new Celda(); // Clases que extienden java.awt.Canvas
celdaB = new Celda();
public void mousePressed
(java.
awt.
event.
MouseEvent evt
) { System.
out.
println("mousePressed on Celda A"); }
});
panelS.add(celda1);
panelS.add(celda2);
getContentPane().add(panelS); // Al ContentPane del Frame o JFrame