An extended version of java.awt.Frame
that adds support for
the JFC/Swing component architecture.
You can find task-oriented documentation about using JFrame
in The Java Tutorial, in the section
How to Make Frames.
The JFrame
class is slightly incompatible with Frame
.
Like all other JFC/Swing top-level containers,
a 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 JFrame
.
This is different from the AWT Frame
case.
As a convenience, the add
, remove
, and setLayout
methods of this class are overridden, so that they delegate calls
to the corresponding methods of the ContentPane
.
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.RootPaneContainer
for details on adding, removing and setting the LayoutManager
of a JFrame
.
Unlike a Frame
, a 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
setDefaultCloseOperation
.
To make the JFrame
behave the same as a Frame
instance, use
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE)
.
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 JFrame
on a different screen device. See java.awt.Frame
for more
information.
Warning: Swing is not thread safe. For more information see Swing's Threading Policy.
Warning:
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 java.beans
package.
Please see java.beans.XMLEncoder
.
extends
JRootPane, setDefaultCloseOperation, java.awt.event.WindowListener.windowClosing, javax.swing.RootPaneContainer
@beaninfo
attribute: isContainer true
attribute: containerDelegate getContentPane
description: A toplevel window which can be minimized to an icon.