The default content pane is a simple intermediate container that inherits from JComponent, and that uses a BorderLayout as its layout manager.
The JComponent class extends the Container class, which itself extends Component.
This is contradictory, isn't it?
Also what are the top-level containers?
To be honest, swing seems to be peculiar. It has something also called root pane. Android framework has a GUI platform which seems to be much elegant looking than swing. Swing looks like a collection of hacks.