A Frame is a top-level window with a title and a border.
The size of the frame includes any area designated for the
border. The dimensions of the border area may be obtained
using the getInsets method, however, since
these dimensions are platform-dependent, a valid insets
value cannot be obtained until the frame is made displayable
by either calling pack or show.
Since the border area is included in the overall size of the
frame, the border effectively obscures a portion of the frame,
constraining the area available for rendering and/or displaying
subcomponents to the rectangle which has an upper-left corner
location of (insets.left, insets.top), and has a size of
width - (insets.left + insets.right) by
height - (insets.top + insets.bottom).
The default layout for a frame is BorderLayout.
A frame may have its native decorations (i.e. Frame
and Titlebar) turned off
with setUndecorated. This can only be done while the frame
is not
Component.isDisplayable displayable .
In a multi-screen environment, you can create a Frame
on a different screen device by constructing the Frame
with
Frame.Frame(GraphicsConfiguration) or
#Frame(String title, GraphicsConfiguration) . The
GraphicsConfiguration object is one of the
GraphicsConfiguration objects of the target screen
device.
In a virtual device multi-screen environment in which the desktop
area could span multiple physical screen devices, the bounds of all
configurations are relative to the virtual-coordinate system. The
origin of the virtual-coordinate system is at the upper left-hand
corner of the primary physical screen. Depending on the location
of the primary screen in the virtual device, negative coordinates
are possible, as shown in the following figure.
In such an environment, when calling setLocation,
you must pass a virtual coordinate to this method. Similarly,
calling getLocationOnScreen on a Frame
returns virtual device coordinates. Call the getBounds
method of a GraphicsConfiguration to find its origin in
the virtual coordinate system.
The following code sets the
location of the Frame at (10, 10) relative
to the origin of the physical screen of the corresponding
GraphicsConfiguration. If the bounds of the
GraphicsConfiguration is not taken into account, the
Frame location would be set at (10, 10) relative to the
virtual-coordinate system and would appear on the primary physical
screen, which might be different from the physical screen of the
specified GraphicsConfiguration.
Frame f = new Frame(GraphicsConfiguration gc);
Rectangle bounds = gc.getBounds();
f.setLocation(10 + bounds.x, 10 + bounds.y);
Frames are capable of generating the following types of
WindowEvents:
WINDOW_OPENED
WINDOW_CLOSING:
If the program doesn't
explicitly hide or dispose the window while processing
this event, the window close operation is canceled.
undecorated This field indicates whether the frame is undecorated.
Constructor Summary
public
Frame() Constructs a new instance of Frame that is
initially invisible.
public
Frame(GraphicsConfiguration gc) Constructs a new, initially invisible
Frame with the
specified
GraphicsConfiguration .
Parameters: gc - the GraphicsConfiguration of the target screen device.
public
Frame(String title) Constructs a new, initially invisible Frame object
with the specified title.
public
Frame(String title, GraphicsConfiguration gc) Constructs a new, initially invisible Frame object
with the specified title and a
GraphicsConfiguration.
Parameters: title - the title to be displayed in the frame's border.A null valueis treated as an empty string, "". Parameters: gc - the GraphicsConfiguration of the target screen device.
Method Summary
public void
addNotify() Makes this Frame displayable by connecting it to
a native screen resource.
getFrames() Returns an array of all
Frame s created by this application.
If called from an applet, the array includes only the
Frame s
accessible by that applet.
Warning: this method may return system created frames, such
as a shared, hidden frame which is used by Swing.
paramString() Returns a string representing the state of this Frame.
This method is intended to be used only for debugging purposes, and the
content and format of the returned string may vary between
implementations.
When a frame is in maximized state the system supplies some
defaults bounds.
public void
setMenuBar(MenuBar mb) Sets the menu bar for this frame to the specified menu bar.
public void
setResizable(boolean resizable) Sets whether this frame is resizable by the user.
public synchronized void
setState(int state) Sets the state of this frame (obsolete).
In older versions of JDK a frame state could only be NORMAL or
ICONIFIED.
public void
setTitle(String title) Sets the title for this frame to the specified string.
public void
setUndecorated(boolean undecorated) Disables or enables decorations for this frame.
This method can only be called while the frame is not displayable.
Parameters: undecorated - true if no frame decorations are to be enabled;false if frame decorations are to be enabled.
This state bit mask indicates that frame is fully maximized
(that is both horizontally and vertically). It is just a
convenience alias for
MAXIMIZED_VERT | MAXIMIZED_HORIZ.
Note that the correct test for frame being fully maximized is
This field indicates whether the frame is resizable.
This property can be changed at any time.
resizable will be true if the frame is
resizable, otherwise it will be false.
See Also:Frame.isResizable()
This is the title of the frame. It can be changed
at any time. title can be null and if
this is the case the title = "".
See Also:Frame.getTitle See Also:Frame.setTitle(String)
This field indicates whether the frame is undecorated.
This property can only be changed while the frame is not displayable.
undecorated will be true if the frame is
undecorated, otherwise it will be false.
See Also:Frame.setUndecorated(boolean) See Also:Frame.isUndecorated() See Also:Component.isDisplayable since: 1.4
Constructs a new, initially invisible
Frame with the
specified
GraphicsConfiguration .
Parameters: gc - the GraphicsConfiguration of the target screen device. If gc is null, the system default GraphicsConfiguration is assumed. exception: IllegalArgumentException - if gc is not from a screen device. exception: HeadlessException - whenGraphicsEnvironment.isHeadless() returns true See Also:java.awt.GraphicsEnvironment.isHeadless since: 1.3
Makes this Frame displayable by connecting it to
a native screen resource. Making a frame displayable will
cause any of its children to be made displayable.
This method is called internally by the toolkit and should
not be called directly by programs.
See Also:Component.isDisplayable See Also:Frame.removeNotify
Gets the AccessibleContext associated with this Frame.
For frames, the AccessibleContext takes the form of an
AccessibleAWTFrame.
A new AccessibleAWTFrame instance is created if necessary.
an AccessibleAWTFrame that serves as the AccessibleContext of this Frame since: 1.3
Returns an array of all
Frame s created by this application.
If called from an applet, the array includes only the
Frame s
accessible by that applet.
Warning: this method may return system created frames, such
as a shared, hidden frame which is used by Swing. Applications
should not assume the existence of these frames, nor should an
application assume anything about these frames such as component
positions, LayoutManagers or serialization.
Returns the image to be displayed as the icon for this frame.
This method is obsolete and kept for backward compatibility
only. Use
Window.getIconImages Window.getIconImages() instead.
If a list of several images was specified as a Window's icon,
this method will return the first item of the list.
the icon image for this frame, or null if this frame doesn't have an icon image. See Also:Frame.setIconImage(Image) See Also:Window.getIconImages See Also:Window.setIconImages
Gets maximized bounds for this frame.
Some fields may contain Integer.MAX_VALUE to indicate
that system supplied values for this field must be used.
maximized bounds for this frame; may be null See Also:Frame.setMaximizedBounds(Rectangle) since: 1.4
In older versions of JDK a frame state could only be NORMAL or
ICONIFIED. Since JDK 1.4 set of supported frame states is
expanded and frame state is represented as a bitwise mask.
For compatibility with old programs this method still returns
Frame.NORMAL and Frame.ICONIFIED but
it only reports the iconic state of the frame, other aspects of
frame state are not reported by this method.
Frame.NORMAL or Frame.ICONIFIED. See Also:Frame.setState(int) See Also:Frame.getExtendedState
Gets the title of the frame. The title is displayed in the
frame's border.
the title of this frame, or an empty string ("")if this frame doesn't have a title. See Also:Frame.setTitle(String)
Indicates whether this frame is resizable by the user.
By default, all frames are initially resizable.
true if the user can resize this frame; false otherwise. See Also:java.awt.Frame.setResizable(boolean)
Indicates whether this frame is undecorated.
By default, all frames are initially decorated.
true if frame is undecorated; false otherwise. See Also:java.awt.Frame.setUndecorated(boolean) since: 1.4
Returns a string representing the state of this Frame.
This method is intended to be used only for debugging purposes, and the
content and format of the returned string may vary between
implementations. The returned string may be empty but may not be
null.
the parameter string of this frame
Makes this Frame undisplayable by removing its connection
to its native screen resource. Making a Frame undisplayable
will cause any of its children to be made undisplayable.
This method is called by the toolkit internally and should
not be called directly by programs.
See Also:Component.isDisplayable See Also:Frame.addNotify
public synchronized void setExtendedState(int state)(Code)
Sets the state of this frame. The state is
represented as a bitwise mask.
NORMAL Indicates that no state bits are set.
ICONIFIED
MAXIMIZED_HORIZ
MAXIMIZED_VERT
MAXIMIZED_BOTH Concatenates MAXIMIZED_HORIZ
and MAXIMIZED_VERT.
Note that if the state is not supported on a
given platform, nothing will happen. The application
may determine if a specific state is available via
the java.awt.Toolkit.isFrameStateSupported(int state)
method.
Parameters: state - a bitwise mask of frame state constants See Also:Frame.getExtendedState See Also:java.awt.Toolkit.isFrameStateSupported(int) since: 1.4
public synchronized void setMaximizedBounds(Rectangle bounds)(Code)
Sets the maximized bounds for this frame.
When a frame is in maximized state the system supplies some
defaults bounds. This method allows some or all of those
system supplied values to be overridden.
If bounds is null, accept bounds
supplied by the system. If non-null you can
override some of the system supplied values while accepting
others by setting those fields you want to accept from system
to Integer.MAX_VALUE.
On some systems only the size portion of the bounds is taken
into account.
Parameters: bounds - bounds for the maximized state See Also:Frame.getMaximizedBounds() since: 1.4
Sets the menu bar for this frame to the specified menu bar.
Parameters: mb - the menu bar being set.If this parameter is null then anyexisting menu bar on this frame is removed. See Also:Frame.getMenuBar
Sets whether this frame is resizable by the user.
Parameters: resizable - true if this frame is resizable; false otherwise. See Also:java.awt.Frame.isResizable
setState
public synchronized void setState(int state)(Code)
Sets the state of this frame (obsolete).
In older versions of JDK a frame state could only be NORMAL or
ICONIFIED. Since JDK 1.4 set of supported frame states is
expanded and frame state is represented as a bitwise mask.
For compatibility with old programs this method still accepts
Frame.NORMAL and Frame.ICONIFIED but
it only changes the iconic state of the frame, other aspects of
frame state are not affected by this method.
Parameters: state - either Frame.NORMAL orFrame.ICONIFIED. See Also:Frame.getState See Also:Frame.setExtendedState(int)
Sets the title for this frame to the specified string.
Parameters: title - the title to be displayed in the frame's border.A null valueis treated as an empty string, "". See Also:Frame.getTitle
setUndecorated
public void setUndecorated(boolean undecorated)(Code)
Disables or enables decorations for this frame.
This method can only be called while the frame is not displayable.
Parameters: undecorated - true if no frame decorations are to be enabled;false if frame decorations are to be enabled. IllegalComponentStateException if the frameis displayable. See Also:Frame.isUndecorated See Also:Component.isDisplayable See Also: See Also:javax.swing.JFrame.setDefaultLookAndFeelDecorated(boolean) since: 1.4