A: 

The problem would appear to be that you have a class variable and a local variable for each of your square panels.

Square square1 = new Square("1"); 

should be:

square1 = new Square("1"); 

now you will only have a class variable which the PuzzleListener can reference.

camickr
Much appreciated!!! Valuable lesson learned.
Bryan Harrington
A: 

Is there a need to use a single MouseListener? You could create a new instance of your PuzzleListener and add it to each JPanel. That way there is no confusion as to which listener on which panel is getting fired.

John Engelman
This is a shortened version of my code, I actually have 16 JPanels on 1 JFrame. Sounds weird but those are the project requirements.
Bryan Harrington