• JPanel is Swing's version of the AWT class Panel and uses the same default layout, Flow Layout. JPanel is descended directly from JComponent.
• JFrame is Swing's version of Frame and is descended directly from that class. The components added to the frame are referred to as its contents; these are managed by the contentPane. To add a component to a JFrame, we must use its contentPane instead.
• JInternalFrame is confined to a visible area of a container it is placed in. It can be iconified, maximized and layered.
• JWindow is Swing's version of Window and is descended directly from that class. Like Window, it uses BorderLayout by default.