The JComponent Class
JComponent is an abstract class that almost all Swing components
extend; it provides much of the underlying functionality common
throughout the Swing component library. Just as the java.awt.Component class serves as the guiding
framework for most of the AWT components, the javax.swing.JComponent class serves an
identical role for the Swing components. We should note that the
JComponent class extends java.awt.Container (which in turn extends
java.awt.Component), so it is
accurate to say that Swing components carry with them a great deal of
AWT functionality as well.
Because JComponent extends
Container, many Swing components can
serve as containers for other AWT and Swing components. These components
may be added using the traditional add(
) method of Container. In
addition, they can be positioned with any Java layout manager while
inside the container. The terminology remains the same as well:
components that are added to a container are said to be its
children; the container is the
parent of those components. Following the analogy, any component
that is higher in the tree is said to be its
ancestor , while any component that is lower is said to be its
descendant.
Recall that Swing components are considered “lightweight.”
In other words, they do not rely on corresponding peer objects within
the operating system to render themselves. As we mentioned in Chapter 1, lightweight components draw
themselves using the standard features of the abstract Graphics