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
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
A frame may have its native decorations (i.e.
Titlebar) turned off with
setUndecorated. This can only be done while the frame is not
In a multi-screen environment, you can create a
Frame on a different screen device by constructing the
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
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
If the program doesn't explicitly hide or dispose the window while processing this event, the window close operation is canceled.