You are correct that it only appears in the "last card it was added to", but that has nothing to do with CardLayout
, that has to do with the fact each component can only be in one parent.
From the Javadoc for java.awt.Container.addImpl(Component comp, Object constraints, int index)
:
If the component is not an ancestor of this container and has a non-null parent, it is removed from its current parent before it is added to this container.