JComponent: The Generic Widget
The JComponent provides the basis for all Swing components.
JComponent extends java.awt.Container, making all Swing components large, powerful widgets. (Also, all Swing components are also containers--even if you wouldn’t normally place things in them. E.g., JButton)
In turn, JComponent is subclassed by numerous widgets. Thus, composition is favored or inheritance for widget manipulation.