hm.... ok. So perhaps I should have a JFrame that goes through a list of all the units and redraws the "unit layer" each time a piece moves, and so each piece is actually based on a non-swing class?
Yes.
You can use Swing buttons, etc. if you like. But don't make the units, terrain, etc. be Swing components. Swing components are very inefficient when compared to just drawing an image. It is also a very big pain to change the coordinates of Swing components when compared to just changed the coordinates of where a unit gets drawn. If you use layouts, you might have to repack the frame every time a unit moved, which would be ridiculous.
You could have different JPanels for the different screens in your game (main screen, status screen, menu screen, etc.). In this case, drawing the unit layer would be in the JPanel for the main screen rather than in the JFrame. That would be ok, but having each unit be a Swing component would be overkill.