Module java.desktop
Package java.awt

## Class Frame

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - java.awt.Window
      - - java.awt.Frame

All Implemented Interfaces:
  ImageObserver, MenuContainer, Serializable, Accessible

Direct Known Subclasses:
  JFrame

    public class Frame
    extends Window
    implements MenuContainer

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 `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`:
  If the program doesn't explicitly hide or dispose the window while processing this event, the window close operation is canceled.
- `WINDOW_CLOSED`
- `WINDOW_ICONIFIED`
- `WINDOW_DEICONIFIED`
- `WINDOW_ACTIVATED`
- `WINDOW_DEACTIVATED`
- `WINDOW_GAINED_FOCUS`
- `WINDOW_LOST_FOCUS`
- `WINDOW_STATE_CHANGED`

Since:
  1.0
See Also:
  `WindowEvent`, `Window.addWindowListener(java.awt.event.WindowListener)`, Serialized Form

### Nested Class Summary

Nested Classes
`protected class` `Frame.AccessibleAWTFrame` This class implements accessibility support for the `Frame` class.

### Nested classes/interfaces inherited from class java.awt.Component

`Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

### Nested classes/interfaces inherited from class java.awt.Container

`Container.AccessibleAWTContainer`

### Nested classes/interfaces inherited from class java.awt.Window

`Window.AccessibleAWTWindow, Window.Type`

### Field Summary

Fields
`static int` `CROSSHAIR_CURSOR` Deprecated. replaced by `Cursor.CROSSHAIR_CURSOR`.
`static int` `DEFAULT_CURSOR` Deprecated. replaced by `Cursor.DEFAULT_CURSOR`.
`static int` `E_RESIZE_CURSOR` Deprecated. replaced by `Cursor.E_RESIZE_CURSOR`.
`static int` `HAND_CURSOR` Deprecated. replaced by `Cursor.HAND_CURSOR`.
`static int` `ICONIFIED` This state bit indicates that frame is iconified.
`static int` `MAXIMIZED_BOTH` This state bit mask indicates that frame is fully maximized (that is both horizontally and vertically).
`static int` `MAXIMIZED_HORIZ` This state bit indicates that frame is maximized in the horizontal direction.
`static int` `MAXIMIZED_VERT` This state bit indicates that frame is maximized in the vertical direction.
`static int` `MOVE_CURSOR` Deprecated. replaced by `Cursor.MOVE_CURSOR`.
`static int` `N_RESIZE_CURSOR` Deprecated. replaced by `Cursor.N_RESIZE_CURSOR`.
`static int` `NE_RESIZE_CURSOR` Deprecated. replaced by `Cursor.NE_RESIZE_CURSOR`.
`static int` `NORMAL` Frame is in the "normal" state.
`static int` `NW_RESIZE_CURSOR` Deprecated. replaced by `Cursor.NW_RESIZE_CURSOR`.
`static int` `S_RESIZE_CURSOR` Deprecated. replaced by `Cursor.S_RESIZE_CURSOR`.
`static int` `SE_RESIZE_CURSOR` Deprecated. replaced by `Cursor.SE_RESIZE_CURSOR`.
`static int` `SW_RESIZE_CURSOR` Deprecated. replaced by `Cursor.SW_RESIZE_CURSOR`.
`static int` `TEXT_CURSOR` Deprecated. replaced by `Cursor.TEXT_CURSOR`.
`static int` `W_RESIZE_CURSOR` Deprecated. replaced by `Cursor.W_RESIZE_CURSOR`.
`static int` `WAIT_CURSOR` Deprecated. replaced by `Cursor.WAIT_CURSOR`.

### Fields inherited from class java.awt.Component

`accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

### Fields inherited from interface java.awt.image.ImageObserver

`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

### Constructor Summary

Constructors
Constructor and Description
`Frame()` Constructs a new instance of `Frame` that is initially invisible.
`Frame(GraphicsConfiguration gc)` Constructs a new, initially invisible `Frame` with the specified `GraphicsConfiguration`.
`Frame(String title)` Constructs a new, initially invisible `Frame` object with the specified title.
`Frame(String title, GraphicsConfiguration gc)` Constructs a new, initially invisible `Frame` object with the specified title and a `GraphicsConfiguration`.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
`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(MenuComponent m)` Removes the specified menu bar from this frame.
`void` `removeNotify()` Makes this Frame undisplayable by removing its connection to its native screen resource.
`void` `setBackground(Color bgColor)` Sets the background color of this window.
`void` `setCursor(int cursorType)` Deprecated. As of JDK version 1.1, replaced by `Component.setCursor(Cursor)`.
`void` `setExtendedState(int state)` Sets the state of this frame.
`void` `setIconImage(Image image)` Sets the image to be displayed as the icon for this window.
`void` `setMaximizedBounds(Rectangle bounds)` Sets the maximized bounds for this frame.
`void` `setMenuBar(MenuBar mb)` Sets the menu bar for this frame to the specified menu bar.
`void` `setOpacity(float opacity)` Sets the opacity of the window.
`void` `setResizable(boolean resizable)` Sets whether this frame is resizable by the user.
`void` `setShape(Shape shape)` Sets the shape of the window.
`void` `setState(int state)` Sets the state of this frame (obsolete).
`void` `setTitle(String title)` Sets the title for this frame to the specified string.
`void` `setUndecorated(boolean undecorated)` Disables or enables decorations for this frame.

### Methods inherited from class java.awt.Component

`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, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

### Methods inherited from class java.awt.Container

`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`

### Methods inherited from interface java.awt.MenuContainer

`getFont, postEvent`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from class java.awt.Window

`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, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFront`

### Field Detail

#### CROSSHAIR_CURSOR

    @Deprecated
    public static final int CROSSHAIR_CURSOR

Deprecated. replaced by `Cursor.CROSSHAIR_CURSOR`.

See Also:
  Constant Field Values

#### DEFAULT_CURSOR

    @Deprecated
    public static final int DEFAULT_CURSOR

Deprecated. replaced by `Cursor.DEFAULT_CURSOR`.

See Also:
  Constant Field Values

#### E_RESIZE_CURSOR

    @Deprecated
    public static final int E_RESIZE_CURSOR

Deprecated. replaced by `Cursor.E_RESIZE_CURSOR`.

See Also:
  Constant Field Values

#### HAND_CURSOR

    @Deprecated
    public static final int HAND_CURSOR

Deprecated. replaced by `Cursor.HAND_CURSOR`.

See Also:
  Constant Field Values

#### ICONIFIED

    public static final int ICONIFIED

This state bit indicates that frame is iconified.

See Also:
  `setExtendedState(int)`, `getExtendedState()`, Constant Field Values

#### MAXIMIZED_BOTH

    public static final int MAXIMIZED_BOTH

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

         (state & Frame.MAXIMIZED_BOTH) == Frame.MAXIMIZED_BOTH

To test is frame is maximized in some direction use

         (state & Frame.MAXIMIZED_BOTH) != 0

Since:
  1.4
See Also:
  `setExtendedState(int)`, `getExtendedState()`, Constant Field Values

#### MAXIMIZED_HORIZ

    public static final int MAXIMIZED_HORIZ

This state bit indicates that frame is maximized in the horizontal direction.

Since:
  1.4
See Also:
  `setExtendedState(int)`, `getExtendedState()`, Constant Field Values

#### MAXIMIZED_VERT

    public static final int MAXIMIZED_VERT

This state bit indicates that frame is maximized in the vertical direction.

Since:
  1.4
See Also:
  `setExtendedState(int)`, `getExtendedState()`, Constant Field Values

#### MOVE_CURSOR

    @Deprecated
    public static final int MOVE_CURSOR

Deprecated. replaced by `Cursor.MOVE_CURSOR`.

See Also:
  Constant Field Values

#### N_RESIZE_CURSOR

    @Deprecated
    public static final int N_RESIZE_CURSOR

Deprecated. replaced by `Cursor.N_RESIZE_CURSOR`.

See Also:
  Constant Field Values

#### NE_RESIZE_CURSOR

    @Deprecated
    public static final int NE_RESIZE_CURSOR

Deprecated. replaced by `Cursor.NE_RESIZE_CURSOR`.

See Also:
  Constant Field Values

#### NORMAL

    public static final int NORMAL

Frame is in the "normal" state. This symbolic constant names a frame state with all state bits cleared.

See Also:
  `setExtendedState(int)`, `getExtendedState()`, Constant Field Values

#### NW_RESIZE_CURSOR

    @Deprecated
    public static final int NW_RESIZE_CURSOR

Deprecated. replaced by `Cursor.NW_RESIZE_CURSOR`.

See Also:
  Constant Field Values

#### S_RESIZE_CURSOR

    @Deprecated
    public static final int S_RESIZE_CURSOR

Deprecated. replaced by `Cursor.S_RESIZE_CURSOR`.

See Also:
  Constant Field Values

#### SE_RESIZE_CURSOR

    @Deprecated
    public static final int SE_RESIZE_CURSOR

Deprecated. replaced by `Cursor.SE_RESIZE_CURSOR`.

See Also:
  Constant Field Values

#### SW_RESIZE_CURSOR

    @Deprecated
    public static final int SW_RESIZE_CURSOR

Deprecated. replaced by `Cursor.SW_RESIZE_CURSOR`.

See Also:
  Constant Field Values

#### TEXT_CURSOR

    @Deprecated
    public static final int TEXT_CURSOR

Deprecated. replaced by `Cursor.TEXT_CURSOR`.

See Also:
  Constant Field Values

#### W_RESIZE_CURSOR

    @Deprecated
    public static final int W_RESIZE_CURSOR

Deprecated. replaced by `Cursor.W_RESIZE_CURSOR`.

See Also:
  Constant Field Values

#### WAIT_CURSOR

    @Deprecated
    public static final int WAIT_CURSOR

Deprecated. replaced by `Cursor.WAIT_CURSOR`.

See Also:
  Constant Field Values

### Constructor Detail

#### Frame

    public Frame()
          throws HeadlessException

Constructs a new instance of `Frame` that is initially invisible. The title of the `Frame` is empty.

Throws:
  `HeadlessException` - when `GraphicsEnvironment.isHeadless()` returns `true`
See Also:
  `GraphicsEnvironment.isHeadless()`, `Component.setSize(int, int)`, `Component.setVisible(boolean)`

#### Frame

    public Frame(GraphicsConfiguration gc)

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.
Throws:
  `IllegalArgumentException` - if `gc` is not from a screen device.
  `HeadlessException` - when `GraphicsEnvironment.isHeadless()` returns `true`
Since:
  1.3
See Also:
  `GraphicsEnvironment.isHeadless()`

#### Frame

    public Frame(String title)
          throws HeadlessException

Constructs a new, initially invisible `Frame` object with the specified title.

Parameters:
  `title` - the title to be displayed in the frame's border. A `null` value is treated as an empty string, "".
Throws:
  `HeadlessException` - when `GraphicsEnvironment.isHeadless()` returns `true`
See Also:
  `GraphicsEnvironment.isHeadless()`, `Component.setSize(int, int)`, `Component.setVisible(boolean)`, `GraphicsConfiguration.getBounds()`

#### Frame

    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` 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.
Throws:
  `IllegalArgumentException` - if `gc` is not from a screen device.
  `HeadlessException` - when `GraphicsEnvironment.isHeadless()` returns `true`
Since:
  1.3
See Also:
  `GraphicsEnvironment.isHeadless()`, `Component.setSize(int, int)`, `Component.setVisible(boolean)`, `GraphicsConfiguration.getBounds()`

### Method Detail

#### addNotify

    public void addNotify()

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.

Overrides:
  `addNotify` in class `Window`
See Also:
  `Component.isDisplayable()`, `removeNotify()`

#### getTitle

    public String getTitle()

Gets the title of the frame. The title is displayed in the frame's border.

Returns:
  the title of this frame, or an empty string ("") if this frame doesn't have a title.
See Also:
  `setTitle(String)`

#### setTitle

    public void setTitle(String title)

Sets the title for this frame to the specified string.

Parameters:
  `title` - the title to be displayed in the frame's border. A `null` value is treated as an empty string, "".
See Also:
  `getTitle()`

#### getIconImage

    public Image getIconImage()

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()` instead.

If a list of several images was specified as a Window's icon, this method will return the first item of the list.

Returns:
  the icon image for this frame, or `null` if this frame doesn't have an icon image.
See Also:
  `setIconImage(Image)`, `Window.getIconImages()`, `Window.setIconImages(java.util.List<? extends java.awt.Image>)`

#### setIconImage

    public void setIconImage(Image image)

Sets the image to be displayed as the icon for this window.

This method can be used instead of `setIconImages()` to specify a single image as a window's icon.

The following statement:

         setIconImage(image);

is equivalent to:

         ArrayList<Image> imageList = new ArrayList<Image>();
         imageList.add(image);
         setIconImages(imageList);

Note : Native windowing systems may use different images of differing dimensions to represent a window, depending on the context (e.g. window decoration, window list, taskbar, etc.). They could also use just a single image for all contexts or no image at all.

Overrides:
  `setIconImage` in class `Window`
Parameters:
  `image` - the icon image to be displayed.
See Also:
  `Window.setIconImages(java.util.List<? extends java.awt.Image>)`, `Window.getIconImages()`

#### getMenuBar

    public MenuBar getMenuBar()

Gets the menu bar for this frame.

Returns:
  the menu bar for this frame, or `null` if this frame doesn't have a menu bar.
See Also:
  `setMenuBar(MenuBar)`

#### setMenuBar

    public void setMenuBar(MenuBar mb)

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 any existing menu bar on this frame is removed.
See Also:
  `getMenuBar()`

#### isResizable

    public boolean isResizable()

Indicates whether this frame is resizable by the user. By default, all frames are initially resizable.

Returns:
  `true` if the user can resize this frame; `false` otherwise.
See Also:
  `setResizable(boolean)`

#### setResizable

    public void setResizable(boolean resizable)

Sets whether this frame is resizable by the user.

Parameters:
  `resizable` - `true` if this frame is resizable; `false` otherwise.
See Also:
  `isResizable()`

#### setState

    public 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. 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.

Parameters:
  `state` - either `Frame.NORMAL` or `Frame.ICONIFIED`.
See Also:
  `setExtendedState(int)`, `Window.addWindowStateListener(java.awt.event.WindowStateListener)`

#### setExtendedState

    public void setExtendedState(int state)

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, 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.

Parameters:
  `state` - a bitwise mask of frame state constants
Since:
  1.4
See Also:
  `Window.addWindowStateListener(java.awt.event.WindowStateListener)`

#### getState

    public int getState()

Gets 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 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.

Returns:
  `Frame.NORMAL` or `Frame.ICONIFIED`.
See Also:
  `setState(int)`, `getExtendedState()`

#### getExtendedState

    public int getExtendedState()

Gets 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`.

Returns:
  a bitwise mask of frame state constants
Since:
  1.4
See Also:
  `setExtendedState(int)`

#### setMaximizedBounds

    public void setMaximizedBounds(Rectangle bounds)

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`.

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.

Parameters:
  `bounds` - bounds for the maximized state
Since:
  1.4
See Also:
  `getMaximizedBounds()`

#### getMaximizedBounds

    public Rectangle getMaximizedBounds()

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.

Returns:
  maximized bounds for this frame; may be `null`
Since:
  1.4
See Also:
  `setMaximizedBounds(Rectangle)`

#### setUndecorated

    public void setUndecorated(boolean undecorated)

Disables or enables decorations for this frame.

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

Parameters:
  `undecorated` - `true` if no frame decorations are to be enabled; `false` if frame decorations are to be enabled
Throws:
  `IllegalComponentStateException` - if the frame is displayable
  `IllegalComponentStateException` - if `undecorated` is `false`, and this frame does not have the default shape
  `IllegalComponentStateException` - 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`
Since:
  1.4
See Also:
  `isUndecorated()`, `Component.isDisplayable()`, `Window.getShape()`, `Window.getOpacity()`, `Window.getBackground()`, `JFrame.setDefaultLookAndFeelDecorated(boolean)`

#### isUndecorated

    public boolean isUndecorated()

Indicates whether this frame is undecorated. By default, all frames are initially decorated.

Returns:
  `true` if frame is undecorated; `false` otherwise.
Since:
  1.4
See Also:
  `setUndecorated(boolean)`

#### setOpacity

    public void setOpacity(float opacity)

Sets the opacity of the window.

The opacity value is in the range [0..1]. Note that setting the opacity level of 0 may or may not disable the mouse event handling on this window. This is a platform-dependent behavior.

The following conditions must be met in order to set the opacity value less than `1.0f`:

- The `TRANSLUCENT` translucency must be supported by the underlying system
- The window must be undecorated (see `setUndecorated(boolean)` and `Dialog.setUndecorated(boolean)`)
- The window must not be in full-screen mode (see `GraphicsDevice.setFullScreenWindow(Window)`)

If the requested opacity value is less than `1.0f`, and any of the above conditions are not met, the window opacity will not change, and the `IllegalComponentStateException` will be thrown.

The translucency levels of individual pixels may also be effected by the alpha component of their color (see `Window.setBackground(Color)`) and the current shape of this window (see `Window.setShape(Shape)`).

Overrides:
  `setOpacity` in class `Window`
Parameters:
  `opacity` - the opacity level to set to the window
See Also:
  `Window.getOpacity()`, `Window.setBackground(Color)`, `Window.setShape(Shape)`, `isUndecorated()`, `Dialog.isUndecorated()`, `GraphicsDevice.WindowTranslucency`, `GraphicsDevice.isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency)`

#### setShape

    public void setShape(Shape shape)

Sets the shape of the window.

Setting a shape cuts off some parts of the window. Only the parts that belong to the given `Shape` remain visible and clickable. If the shape argument is `null`, this method restores the default shape, making the window rectangular on most platforms.

The following conditions must be met to set a non-null shape:

- The `PERPIXEL_TRANSPARENT` translucency must be supported by the underlying system
- The window must be undecorated (see `setUndecorated(boolean)` and `Dialog.setUndecorated(boolean)`)
- The window must not be in full-screen mode (see `GraphicsDevice.setFullScreenWindow(Window)`)

If the requested shape is not `null`, and any of the above conditions are not met, the shape of this window will not change, and either the `UnsupportedOperationException` or `IllegalComponentStateException` will be thrown.

The translucency levels of individual pixels may also be effected by the alpha component of their color (see `Window.setBackground(Color)`) and the opacity value (see `Window.setOpacity(float)`). See `GraphicsDevice.WindowTranslucency` for more details.

Overrides:
  `setShape` in class `Window`
Parameters:
  `shape` - the shape to set to the window
See Also:
  `Window.getShape()`, `Window.setBackground(Color)`, `Window.setOpacity(float)`, `isUndecorated()`, `Dialog.isUndecorated()`, `GraphicsDevice.WindowTranslucency`, `GraphicsDevice.isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency)`

#### setBackground

    public void setBackground(Color bgColor)

Sets the background color of this window.

If the windowing system supports the `PERPIXEL_TRANSLUCENT` translucency, the alpha component of the given background color may effect the mode of operation for this window: it indicates whether this window must be opaque (alpha equals `1.0f`) or per-pixel translucent (alpha is less than `1.0f`). If the given background color is `null`, the window is considered completely opaque.

All the following conditions must be met to enable the per-pixel transparency mode for this window:

- The `PERPIXEL_TRANSLUCENT` translucency must be supported by the graphics device where this window is located
- The window must be undecorated (see `setUndecorated(boolean)` and `Dialog.setUndecorated(boolean)`)
- The window must not be in full-screen mode (see `GraphicsDevice.setFullScreenWindow(Window)`)

If the alpha component of the requested background color is less than `1.0f`, and any of the above conditions are not met, the background color of this window will not change, the alpha component of the given background color will not affect the mode of operation for this window, and either the `UnsupportedOperationException` or `IllegalComponentStateException` will be thrown.

When the window is per-pixel translucent, the drawing sub-system respects the alpha value of each individual pixel. If a pixel gets painted with the alpha color component equal to zero, it becomes visually transparent. If the alpha of the pixel is equal to 1.0f, the pixel is fully opaque. Interim values of the alpha color component make the pixel semi-transparent. In this mode, the background of the window gets painted with the alpha value of the given background color. If the alpha value of the argument of this method is equal to `0`, the background is not painted at all.

The actual level of translucency of a given pixel also depends on window opacity (see `Window.setOpacity(float)`), as well as the current shape of this window (see `Window.setShape(Shape)`).

Note that painting a pixel with the alpha value of `0` may or may not disable the mouse event handling on this pixel. This is a platform-dependent behavior. To make sure the mouse events do not get dispatched to a particular pixel, the pixel must be excluded from the shape of the window.

Enabling the per-pixel translucency mode may change the graphics configuration of this window due to the native platform requirements.

Overrides:
  `setBackground` in class `Window`
Parameters:
  `bgColor` - the color to become this window's background color.
See Also:
  `Window.getBackground()`, `Window.isOpaque()`, `Window.setOpacity(float)`, `Window.setShape(Shape)`, `isUndecorated()`, `Dialog.isUndecorated()`, `GraphicsDevice.WindowTranslucency`, `GraphicsDevice.isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency)`, `GraphicsConfiguration.isTranslucencyCapable()`

#### remove

    public void remove(MenuComponent m)

Removes the specified menu bar from this frame.

Specified by:
  `remove` in interface `MenuContainer`
Overrides:
  `remove` in class `Component`
Parameters:
  `m` - the menu component to remove. If `m` is `null`, then no action is taken
See Also:
  `Component.add(PopupMenu)`

#### removeNotify

    public void removeNotify()

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.

Overrides:
  `removeNotify` in class `Window`
See Also:
  `Component.isDisplayable()`, `addNotify()`

#### paramString

    protected String 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. The returned string may be empty but may not be `null`.

Overrides:
  `paramString` in class `Container`
Returns:
  the parameter string of this frame

#### setCursor

    @Deprecated
    public void setCursor(int cursorType)

Deprecated. As of JDK version 1.1, replaced by `Component.setCursor(Cursor)`.
Sets the cursor for this frame to the specified type.

Parameters:
  `cursorType` - the cursor type

#### getCursorType

    @Deprecated
    public int getCursorType()

Deprecated. As of JDK version 1.1, replaced by `Component.getCursor()`.

Returns:
  the cursor type for this frame

#### getFrames

    public static Frame[] 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. 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`.

Returns:
  the array of all `Frame`s created by this application
Since:
  1.2
See Also:
  `Window.getWindows()`, `Window.getOwnerlessWindows()`

#### getAccessibleContext

    public AccessibleContext getAccessibleContext()

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.

Specified by:
  `getAccessibleContext` in interface `Accessible`
Overrides:
  `getAccessibleContext` in class `Window`
Returns:
  an AccessibleAWTFrame that serves as the AccessibleContext of this Frame
Since:
  1.3