JFrame (Java Platform SE 8 ) (original) (raw)
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 sectionHow 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 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 methodsetDefaultCloseOperation(int). To make the JFrame
behave the same as a Frame
instance, usesetDefaultCloseOperation(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 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 XMLEncoder.