ImageObserver
, MenuContainer
, Serializable
, Accessible
JFrame
public class Frame extends Window implements MenuContainer
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 displayable
.
In a multi-screen environment, you can create a Frame
on a different screen device by constructing the Frame
with 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 WindowEvent
s:
WINDOW_OPENED
WINDOW_CLOSING
: WINDOW_CLOSED
WINDOW_ICONIFIED
WINDOW_DEICONIFIED
WINDOW_ACTIVATED
WINDOW_DEACTIVATED
WINDOW_GAINED_FOCUS
WINDOW_LOST_FOCUS
WINDOW_STATE_CHANGED
Modifier and Type | Class | Description |
---|---|---|
protected class |
Frame.AccessibleAWTFrame |
This class implements accessibility support for the Frame class. |
Window.AccessibleAWTWindow, Window.Type
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Modifier and Type | Field | Description |
---|---|---|
static final int |
CROSSHAIR_CURSOR |
Deprecated. |
static final int |
DEFAULT_CURSOR |
Deprecated. replaced by Cursor.DEFAULT_CURSOR . |
static final int |
E_RESIZE_CURSOR |
Deprecated. replaced by Cursor.E_RESIZE_CURSOR . |
static final int |
HAND_CURSOR |
Deprecated. replaced by Cursor.HAND_CURSOR . |
static final int |
ICONIFIED |
This state bit indicates that frame is iconified. |
static final int |
MAXIMIZED_BOTH |
This state bit mask indicates that frame is fully maximized (that is both horizontally and vertically). |
static final int |
MAXIMIZED_HORIZ |
This state bit indicates that frame is maximized in the horizontal direction. |
static final int |
MAXIMIZED_VERT |
This state bit indicates that frame is maximized in the vertical direction. |
static final int |
MOVE_CURSOR |
Deprecated. replaced by Cursor.MOVE_CURSOR . |
static final int |
N_RESIZE_CURSOR |
Deprecated. replaced by Cursor.N_RESIZE_CURSOR . |
static final int |
NE_RESIZE_CURSOR |
Deprecated. replaced by Cursor.NE_RESIZE_CURSOR . |
static final int |
NORMAL |
Frame is in the "normal" state. |
static final int |
NW_RESIZE_CURSOR |
Deprecated. replaced by Cursor.NW_RESIZE_CURSOR . |
static final int |
S_RESIZE_CURSOR |
Deprecated. replaced by Cursor.S_RESIZE_CURSOR . |
static final int |
SE_RESIZE_CURSOR |
Deprecated. replaced by Cursor.SE_RESIZE_CURSOR . |
static final int |
SW_RESIZE_CURSOR |
Deprecated. replaced by Cursor.SW_RESIZE_CURSOR . |
static final int |
TEXT_CURSOR |
Deprecated. replaced by Cursor.TEXT_CURSOR . |
static final int |
W_RESIZE_CURSOR |
Deprecated. replaced by Cursor.W_RESIZE_CURSOR . |
static final int |
WAIT_CURSOR |
Deprecated. replaced by Cursor.WAIT_CURSOR . |
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor | Description |
---|---|
Frame() |
Constructs a new instance of Frame that is initially invisible. |
Frame |
Constructs a new, initially invisible Frame with the specified GraphicsConfiguration . |
Frame |
Constructs a new, initially invisible Frame object with the specified title. |
Frame |
Constructs a new, initially invisible Frame object with the specified title and a GraphicsConfiguration . |
Modifier and Type | Method | Description |
---|---|---|
void |
addNotify() |
Makes this Frame displayable by connecting it to a native screen resource. |
AccessibleContext |
getAccessibleContext() |
Gets the AccessibleContext associated with this Frame. |
int |
getCursorType() |
Deprecated. As of JDK version 1.1, replaced by Component.getCursor() . |
int |
getExtendedState() |
Gets the state of this frame. |
static Frame[] |
getFrames() |
Returns an array of all Frame s created by this application. |
Image |
getIconImage() |
Returns the image to be displayed as the icon for this frame. |
Rectangle |
getMaximizedBounds() |
Gets maximized bounds for this frame. |
MenuBar |
getMenuBar() |
Gets the menu bar for this frame. |
int |
getState() |
Gets the state of this frame (obsolete). |
String |
getTitle() |
Gets the title of the frame. |
boolean |
isResizable() |
Indicates whether this frame is resizable by the user. |
boolean |
isUndecorated() |
Indicates whether this frame is undecorated. |
protected String |
paramString() |
Returns a string representing the state of this Frame . |
void |
remove |
Removes the specified menu bar from this frame. |
void |
removeNotify() |
Makes this Frame undisplayable by removing its connection to its native screen resource. |
void |
setCursor |
Deprecated. As of JDK version 1.1, replaced by Component.setCursor(Cursor) . |
void |
setExtendedState |
Sets the state of this frame. |
void |
setMaximizedBounds |
Sets the maximized bounds for this frame. |
void |
setMenuBar |
Sets the menu bar for this frame to the specified menu bar. |
void |
setResizable |
Sets whether this frame is resizable by the user. |
void |
setState |
Sets the state of this frame (obsolete). |
void |
setTitle |
Sets the title for this frame to the specified string. |
void |
setUndecorated |
Disables or enables decorations for this frame. |
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBackground, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setOpacity, setShape, setSize, setSize, setType, setVisible, show, toBack, toFront
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, setLayout, transferFocusDownCycle, update, validate, validateTree
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getFont, postEvent
@Deprecated public static final int DEFAULT_CURSOR
Cursor.DEFAULT_CURSOR
.@Deprecated public static final int CROSSHAIR_CURSOR
Cursor.CROSSHAIR_CURSOR
.@Deprecated public static final int TEXT_CURSOR
Cursor.TEXT_CURSOR
.@Deprecated public static final int WAIT_CURSOR
Cursor.WAIT_CURSOR
.@Deprecated public static final int SW_RESIZE_CURSOR
Cursor.SW_RESIZE_CURSOR
.@Deprecated public static final int SE_RESIZE_CURSOR
Cursor.SE_RESIZE_CURSOR
.@Deprecated public static final int NW_RESIZE_CURSOR
Cursor.NW_RESIZE_CURSOR
.@Deprecated public static final int NE_RESIZE_CURSOR
Cursor.NE_RESIZE_CURSOR
.@Deprecated public static final int N_RESIZE_CURSOR
Cursor.N_RESIZE_CURSOR
.@Deprecated public static final int S_RESIZE_CURSOR
Cursor.S_RESIZE_CURSOR
.@Deprecated public static final int W_RESIZE_CURSOR
Cursor.W_RESIZE_CURSOR
.@Deprecated public static final int E_RESIZE_CURSOR
Cursor.E_RESIZE_CURSOR
.@Deprecated public static final int HAND_CURSOR
Cursor.HAND_CURSOR
.@Deprecated public static final int MOVE_CURSOR
Cursor.MOVE_CURSOR
.public static final int NORMAL
public static final int ICONIFIED
public static final int MAXIMIZED_HORIZ
public static final int MAXIMIZED_VERT
public static final int MAXIMIZED_BOTH
MAXIMIZED_VERT | MAXIMIZED_HORIZ
. Note that the correct test for frame being fully maximized is
(state & Frame.MAXIMIZED_BOTH) == Frame.MAXIMIZED_BOTH
To test is frame is maximized in some direction use
(state & Frame.MAXIMIZED_BOTH) != 0
public Frame() throws HeadlessException
Frame
that is initially invisible. The title of the Frame
is empty.HeadlessException
- when GraphicsEnvironment.isHeadless()
returns true
public Frame(GraphicsConfiguration gc)
Frame
with the specified GraphicsConfiguration
.gc
- the GraphicsConfiguration
of the target screen device. If gc
is null
, the system default GraphicsConfiguration
is assumed.IllegalArgumentException
- if gc
is not from a screen device.HeadlessException
- when GraphicsEnvironment.isHeadless()
returns true
public Frame(String title) throws HeadlessException
Frame
object with the specified title.title
- the title to be displayed in the frame's border. A null
value is treated as an empty string, "".HeadlessException
- when GraphicsEnvironment.isHeadless()
returns true
public Frame(String title, GraphicsConfiguration gc)
Frame
object with the specified title and a GraphicsConfiguration
.title
- the title to be displayed in the frame's border. A null
value is treated as an empty string, "".gc
- the GraphicsConfiguration
of the target screen device. If gc
is null
, the system default GraphicsConfiguration
is assumed.IllegalArgumentException
- if gc
is not from a screen device.HeadlessException
- when GraphicsEnvironment.isHeadless()
returns true
public void addNotify()
public String getTitle()
public void setTitle(String title)
title
- the title to be displayed in the frame's border. A null
value is treated as an empty string, "".public Image getIconImage()
This method is obsolete and kept for backward compatibility only. Use 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.
null
if this frame doesn't have an icon image.public MenuBar getMenuBar()
null
if this frame doesn't have a menu bar.public void setMenuBar(MenuBar mb)
mb
- the menu bar being set. If this parameter is null
then any existing menu bar on this frame is removed.public boolean isResizable()
true
if the user can resize this frame; false
otherwise.public void setResizable(boolean resizable)
resizable
- true
if this frame is resizable; false
otherwise.public void setState(int state)
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 applications developed earlier this method still accepts Frame.NORMAL
and Frame.ICONIFIED
only. The iconic state of the frame is only changed, other aspects of frame state are not affected by this method. If the state passed to this method is neither
Frame.NORMAL
nor Frame.ICONIFIED
the method performs no actions at all.
Note that if the state is not supported on a given platform, neither the state nor the return value of the getState()
method will be changed. The application may determine whether a specific state is supported via the Toolkit.isFrameStateSupported(int)
method.
If the frame is currently visible on the screen (the Window.isShowing()
method returns true
), the developer should examine the return value of the WindowEvent.getNewState()
method of the WindowEvent
received through the WindowStateListener
to determine that the state has actually been changed.
If the frame is not visible on the screen, the events may or may not be generated. In this case the developer may assume that the state changes immediately after this method returns. Later, when the
setVisible(true)
method is invoked, the frame will attempt to apply this state. Receiving any WindowEvent.WINDOW_STATE_CHANGED
events is not guaranteed in this case also.
state
- either Frame.NORMAL
or Frame.ICONIFIED
.public void setExtendedState(int state)
NORMAL
ICONIFIED
MAXIMIZED_HORIZ
MAXIMIZED_VERT
MAXIMIZED_BOTH
MAXIMIZED_HORIZ
and MAXIMIZED_VERT
. Note that if the state is not supported on a given platform, neither the state nor the return value of the getExtendedState()
method will be changed. The application may determine whether a specific state is supported via the Toolkit.isFrameStateSupported(int)
method.
If the frame is currently visible on the screen (the Window.isShowing()
method returns true
), the developer should examine the return value of the WindowEvent.getNewState()
method of the WindowEvent
received through the WindowStateListener
to determine that the state has actually been changed.
If the frame is not visible on the screen, the events may or may not be generated. In this case the developer may assume that the state changes immediately after this method returns. Later, when the
setVisible(true)
method is invoked, the frame will attempt to apply this state. Receiving any WindowEvent.WINDOW_STATE_CHANGED
events is not guaranteed in this case also.
state
- a bitwise mask of frame state constantspublic int getState()
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
.public int getExtendedState()
NORMAL
ICONIFIED
MAXIMIZED_HORIZ
MAXIMIZED_VERT
MAXIMIZED_BOTH
MAXIMIZED_HORIZ
and MAXIMIZED_VERT
. public void setMaximizedBounds(Rectangle bounds)
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
.
Note, the given maximized bounds are used as a hint for the native system, because the underlying platform may not support setting the location and/or size of the maximized windows. If that is the case, the provided values do not affect the appearance of the frame in the maximized state.
bounds
- bounds for the maximized statepublic Rectangle getMaximizedBounds()
Integer.MAX_VALUE
to indicate that system supplied values for this field must be used.null
public void setUndecorated(boolean undecorated)
This method can only be called while the frame is not displayable. To make this frame decorated, it must be opaque and have the default shape, otherwise the IllegalComponentStateException
will be thrown. Refer to Window.setShape(java.awt.Shape)
, Window.setOpacity(float)
and Window.setBackground(java.awt.Color)
for details
undecorated
- true
if no frame decorations are to be enabled; false
if frame decorations are to be enabledIllegalComponentStateException
- if the frame is displayableIllegalComponentStateException
- if undecorated
is false
, and this frame does not have the default shapeIllegalComponentStateException
- if undecorated
is false
, and this frame opacity is less than 1.0f
IllegalComponentStateException
- if undecorated
is false
, and the alpha value of this frame background color is less than 1.0f
public boolean isUndecorated()
true
if frame is undecorated; false
otherwise.public void remove(MenuComponent m)
remove
in interface MenuContainer
remove
in class Component
m
- the menu component to remove. If m
is null
, then no action is takenpublic void removeNotify()
removeNotify
in class Container
protected String paramString()
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
.paramString
in class Container
@Deprecated public void setCursor(int cursorType)
Component.setCursor(Cursor)
.cursorType
- the cursor type@Deprecated public int getCursorType()
Component.getCursor()
.public static Frame[] getFrames()
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, LayoutManager
s or serialization.
Note: To obtain a list of all ownerless windows, including ownerless Dialog
s (introduced in release 1.6), use Window.getOwnerlessWindows
.
Frame
s created by this applicationpublic AccessibleContext getAccessibleContext()
getAccessibleContext
in interface Accessible
getAccessibleContext
in class Window
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/java/awt/Frame.html
Cursor.CROSSHAIR_CURSOR
.