Swing component is an independent control, such as button, label, text field, etc. They need. a container to display themselves. Swing components are derived from JComponent class. JComponent provides the functionality common for all components. JComponent inherits the AWT class Container and Component. Thus, a Swing component and AWT component are compatible with each other.
There are two types of containers namely, top-level containers and lightweight containers
We’ll be covering the following topics in this tutorial:
A top-level container, as the name suggests, lies at the top of the containment hierarchy. The top-level containers are JFrame, JApplet, and JDialog. These containers do not inherit JComponent class but inherit the AWT classes’ Component and Container. These containers are heavyweight components. The most commonly used containers are JFrame and JApplet.
Each top-level container defines a set of panes. JRootPane is a special container which extends JComponent and manages the appearance of JApplet and JFrame objects. It contains a fixed set of panes, namely, glass pane, content pane, and layered pane.
• Glass pane: A glass pane is a top-level pane which covers all other panes. By default, it is a transparent instance of JPanel class. It is used to handle the mouse events affecting the entire container.
• Layered pane: A layered pane is an instance of JLayeredPane class. It holds a container called the content pane and an optional menu bar.
• Content pane: A content pane is a pane which is used to hold the components. All the visual components like buttons, labels are added to content pane. By default, it is an opaque instance of JPanel class and uses border layout. The content pane is accessed via getContentPane () method of JApplet and JFrame classes.
Lightweight containers lie next to the top-level containers in the containment hierarchy. They inherit. JComponent. One of the examples of lightweight container is JPanel. As lightweight container can be contained within another container, they can be used to organize and manage groups of related components.