An extended version of
java.awt.Frame that adds support for
the JFC/Swing component architecture.
You can find task-oriented documentation about using
in The Java Tutorial, in the section
How to Make Frames.
JFrame class is slightly incompatible with
Like all other JFC/Swing top-level containers,
JFrame contains a
JRootPane as its only child.
The content pane provided by the root pane should,
as a rule, contain
all the non-menu components displayed by the
This is different from the AWT
As a convenience, the
methods of this class are overridden, so that they delegate calls
to the corresponding methods of the
For example, you can add a child component to a frame as follows:
frame.add(child);And the child will be added to the contentPane. The content pane will always be non-null. Attempting to set it to null will cause the JFrame to throw an exception. The default content pane will have a BorderLayout manager set on it. Refer to
javax.swing.RootPaneContainerfor details on adding, removing and setting the
JFrame has some notion of how to
respond when the user attempts to close the window. The default behavior
is to simply hide the JFrame when the user closes the window. To change the
default behavior, you invoke the method
To make the
JFrame behave the same as a
For more information on content panes and other features that root panes provide, see Using Top-Level Containers in The Java Tutorial.
In a multi-screen environment, you can create a
on a different screen device. See
java.awt.Frame for more
Warning: Swing is not thread safe. For more information see Swing's Threading Policy.
Serialized objects of this class will not be compatible with
future Swing releases. The current serialization support is
appropriate for short term storage or RMI between applications running
the same version of Swing. As of 1.4, support for long term storage
of all JavaBeans™
has been added to the