Module javafx.graphics
Package javafx.stage

# Class Stage

java.lang.Object
javafx.stage.Window
javafx.stage.Stage

All Implemented Interfaces:
  `EventTarget`

public class Stage extends Window
The JavaFX `Stage` class is the top level JavaFX container. The primary Stage is constructed by the platform. Additional Stage objects may be constructed by the application.

Stage objects must be constructed and modified on the JavaFX Application Thread.

The JavaFX Application Thread is created as part of the startup process for the JavaFX runtime. See the `Application` class and the `Platform.startup(Runnable)` method for more information.

Many of the `Stage` properties are read only because they can be changed externally by the underlying platform and therefore must not be bindable.

Style

A stage has one of the following styles:

- `StageStyle.DECORATED` - a stage with a solid white background and platform decorations.
- `StageStyle.UNDECORATED` - a stage with a solid white background and no decorations.
- `StageStyle.TRANSPARENT` - a stage with a transparent background and no decorations.
- `StageStyle.UTILITY` - a stage with a solid white background and minimal platform decorations.

The style must be initialized before the stage is made visible.

On some platforms decorations might not be available. For example, on some mobile or embedded devices. In these cases a request for a DECORATED or UTILITY window will be accepted, but no decorations will be shown.

Owner

A stage can optionally have an owner Window. When a window is a stage's owner, it is said to be the parent of that stage.

Owned Stages are tied to the parent Window. An owned stage will always be on top of its parent window. When a parent window is closed or iconified, then all owned windows will be affected as well. Owned Stages cannot be independantly iconified.

The owner must be initialized before the stage is made visible.

Modality

A stage has one of the following modalities:

- `Modality.NONE` - a stage that does not block any other window.
- `Modality.WINDOW_MODAL` - a stage that blocks input events from being delivered to all windows from its owner (parent) to its root. Its root is the closest ancestor window without an owner.
- `Modality.APPLICATION_MODAL` - a stage that blocks input events from being delivered to all windows from the same application, except for those from its child hierarchy.

When a window is blocked by a modal stage its Z-order relative to its ancestors is preserved, and it receives no input events and no window activation events, but continues to animate and render normally. Note that showing a modal stage does not necessarily block the caller. The `show()` method returns immediately regardless of the modality of the stage. Use the `showAndWait()` method if you need to block the caller until the modal stage is hidden (closed). The modality must be initialized before the stage is made visible.

Example:

    import javafx.application.Application;
    import javafx.scene.Group;
    import javafx.scene.Scene;
    import javafx.scene.text.Font;
    import javafx.scene.text.Text;
    import javafx.stage.Stage;

    public class HelloWorld extends Application {

        @Override public void start(Stage stage) {
            Text text = new Text(10, 40, "Hello World!");
            text.setFont(new Font(40));
            Scene scene = new Scene(new Group(text));

            stage.setTitle("Welcome to JavaFX!");
            stage.setScene(scene);
            stage.sizeToScene();
            stage.show();
        }

        public static void main(String[] args) {
            Application.launch(args);
        }
    }

produces the following on Windows:

produces the following on Mac OSX:

produces the following on Linux:

Since:
  JavaFX 2.0

## Property Summary

Properties
Type
Property
Description
`final ReadOnlyBooleanProperty`
`alwaysOnTop`
Defines whether this `Stage` is kept on top of other windows.
`final ObjectProperty<String>`
`fullScreenExitHint`
`final ObjectProperty<KeyCombination>`
`fullScreenExitKey`
Get the property for the Full Screen exit key combination.
`final ReadOnlyBooleanProperty`
`fullScreen`
Specifies whether this `Stage` should be a full-screen, undecorated window.
`final ReadOnlyBooleanProperty`
`iconified`
Defines whether the `Stage` is iconified or not.
`final DoubleProperty`
`maxHeight`
Defines the maximum height of this `Stage`.
`final ReadOnlyBooleanProperty`
`maximized`
Defines whether the `Stage` is maximized or not.
`final DoubleProperty`
`maxWidth`
Defines the maximum width of this `Stage`.
`final DoubleProperty`
`minHeight`
Defines the minimum height of this `Stage`.
`final DoubleProperty`
`minWidth`
Defines the minimum width of this `Stage`.
`final BooleanProperty`
`resizable`
Defines whether the `Stage` is resizable or not by the user.
`final StringProperty`
`title`
Defines the title of the `Stage`.

### Properties inherited from class javafx.stage.Window

`eventDispatcher, focused, forceIntegerRenderScale, height, onCloseRequest, onHidden, onHiding, onShowing, onShown, opacity, outputScaleX, outputScaleY, renderScaleX, renderScaleY, scene, showing, width, x, y`

## Constructor Summary

Constructors
Constructor
Description
`Stage()`
Creates a new instance of decorated `Stage`.
`Stage(StageStyle style)`
Creates a new instance of `Stage`.

## Method Summary

Modifier and Type
Method
Description
`final ReadOnlyBooleanProperty`
`alwaysOnTopProperty()`
Defines whether this `Stage` is kept on top of other windows.
`void`
`close()`
Closes this `Stage`.
`final ObjectProperty<String>`
`fullScreenExitHintProperty()`
`final ObjectProperty<KeyCombination>`
`fullScreenExitKeyProperty()`
Get the property for the Full Screen exit key combination.
`final ReadOnlyBooleanProperty`
`fullScreenProperty()`
Specifies whether this `Stage` should be a full-screen, undecorated window.
`final String`
`getFullScreenExitHint()`
Gets the value of the `fullScreenExitHint` property.
`final KeyCombination`
`getFullScreenExitKeyCombination()`
Get the current sequence used to exit Full Screen mode.
`final ObservableList<Image>`
`getIcons()`
Gets the icon images to be used in the window decorations and when minimized.
`final double`
`getMaxHeight()`
Gets the value of the `maxHeight` property.
`final double`
`getMaxWidth()`
Gets the value of the `maxWidth` property.
`final double`
`getMinHeight()`
Gets the value of the `minHeight` property.
`final double`
`getMinWidth()`
Gets the value of the `minWidth` property.
`final Modality`
`getModality()`
Retrieves the modality attribute for this stage.
`final Window`
`getOwner()`
Retrieves the owner Window for this stage, or null for an unowned stage.
`final StageStyle`
`getStyle()`
Retrieves the style attribute for this stage.
`final String`
`getTitle()`
Gets the value of the `title` property.
`final ReadOnlyBooleanProperty`
`iconifiedProperty()`
Defines whether the `Stage` is iconified or not.
`final void`
`initModality(Modality modality)`
Specifies the modality for this stage.
`final void`
`initOwner(Window owner)`
Specifies the owner Window for this stage, or null for a top-level, unowned stage.
`final void`
`initStyle(StageStyle style)`
Specifies the style for this stage.
`final boolean`
`isAlwaysOnTop()`
Gets the value of the `alwaysOnTop` property.
`final boolean`
`isFullScreen()`
Gets the value of the `fullScreen` property.
`final boolean`
`isIconified()`
Gets the value of the `iconified` property.
`final boolean`
`isMaximized()`
Gets the value of the `maximized` property.
`final boolean`
`isResizable()`
Gets the value of the `resizable` property.
`final DoubleProperty`
`maxHeightProperty()`
Defines the maximum height of this `Stage`.
`final ReadOnlyBooleanProperty`
`maximizedProperty()`
Defines whether the `Stage` is maximized or not.
`final DoubleProperty`
`maxWidthProperty()`
Defines the maximum width of this `Stage`.
`final DoubleProperty`
`minHeightProperty()`
Defines the minimum height of this `Stage`.
`final DoubleProperty`
`minWidthProperty()`
Defines the minimum width of this `Stage`.
`final BooleanProperty`
`resizableProperty()`
Defines whether the `Stage` is resizable or not by the user.
`final void`
`setAlwaysOnTop(boolean value)`
Sets the value of the `alwaysOnTop` property.
`final void`
`setFullScreen(boolean value)`
Sets the value of the `fullScreen` property.
`final void`
`setFullScreenExitHint(String value)`
Specifies the text to show when a user enters full screen mode, usually used to indicate the way a user should go about exiting out of full screen mode.
`final void`
`setFullScreenExitKeyCombination(KeyCombination keyCombination)`
Specifies the KeyCombination that will allow the user to exit full screen mode.
`final void`
`setIconified(boolean value)`
Sets the value of the `iconified` property.
`final void`
`setMaxHeight(double value)`
Sets the value of the `maxHeight` property.
`final void`
`setMaximized(boolean value)`
Sets the value of the `maximized` property.
`final void`
`setMaxWidth(double value)`
Sets the value of the `maxWidth` property.
`final void`
`setMinHeight(double value)`
Sets the value of the `minHeight` property.
`final void`
`setMinWidth(double value)`
Sets the value of the `minWidth` property.
`final void`
`setResizable(boolean value)`
Sets the value of the `resizable` property.
`final void`
`setScene(Scene value)`
Specify the scene to be used on this stage.
`final void`
`setTitle(String value)`
Sets the value of the `title` property.
`final void`
`show()`
Attempts to show this Window by setting visibility to true
`void`
`showAndWait()`
Shows this stage and waits for it to be hidden (closed) before returning to the caller.
`final StringProperty`
`titleProperty()`
Defines the title of the `Stage`.
`void`
`toBack()`
Send the `Window` to the background.
`void`
`toFront()`
Bring the `Window` to the foreground.

### Methods inherited from class javafx.stage.Window

`addEventFilter, addEventHandler, buildEventDispatchChain, centerOnScreen, eventDispatcherProperty, fireEvent, focusedProperty, forceIntegerRenderScaleProperty, getEventDispatcher, getHeight, getOnCloseRequest, getOnHidden, getOnHiding, getOnShowing, getOnShown, getOpacity, getOutputScaleX, getOutputScaleY, getProperties, getRenderScaleX, getRenderScaleY, getScene, getUserData, getWidth, getWindows, getX, getY, hasProperties, heightProperty, hide, isFocused, isForceIntegerRenderScale, isShowing, onCloseRequestProperty, onHiddenProperty, onHidingProperty, onShowingProperty, onShownProperty, opacityProperty, outputScaleXProperty, outputScaleYProperty, removeEventFilter, removeEventHandler, renderScaleXProperty, renderScaleYProperty, requestFocus, sceneProperty, setEventDispatcher, setEventHandler, setForceIntegerRenderScale, setHeight, setOnCloseRequest, setOnHidden, setOnHiding, setOnShowing, setOnShown, setOpacity, setRenderScaleX, setRenderScaleY, setUserData, setWidth, setX, setY, showingProperty, sizeToScene, widthProperty, xProperty, yProperty`

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

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

## Property Details

### fullScreen

public final ReadOnlyBooleanProperty fullScreenProperty
Specifies whether this `Stage` should be a full-screen, undecorated window.

The implementation of full-screen mode is platform and profile-dependent.

When set to `true`, the `Stage` will attempt to enter full-screen mode when visible. Set to `false` to return `Stage` to windowed mode. An `IllegalStateException` is thrown if this property is set on a thread other than the JavaFX Application Thread.

The full-screen mode will be exited (and the `fullScreen` attribute will be set to `false`) if the full-screen `Stage` loses focus or if another `Stage` enters full-screen mode on the same `Screen`. Note that a `Stage` in full-screen mode can become invisible without losing its full-screen status and will again enter full-screen mode when the `Stage` becomes visible.

If the platform supports multiple screens an application can control which `Screen` the Stage will enter full-screen mode on by setting its position to be within the bounds of that `Screen` prior to entering full-screen mode.

However once in full-screen mode, `Stage`'s `x`, `y`, `width`, and `height` variables will continue to represent the non-full-screen position and size of the window; the same for `iconified`, `resizable`, `style`, and `opacity`. If changes are made to any of these attributes while in full-screen mode, upon exiting full-screen mode the `Stage` will assume those attributes.

In case that more `Stage` modes are set simultaneously their order of importance is `iconified`, fullScreen, `maximized` (from strongest to weakest).

The property is read only because it can be changed externally by the underlying platform and therefore must not be bindable.

The user can unconditionally exit full-screen mode at any time by pressing `ESC`.

If a security manager is present, the application must have the `FXPermission` "unrestrictedFullScreen" in order to enter full-screen mode with no restrictions. Applications without permission will have the following restrictions:

- Applications can only enter full-screen mode in response to user input. More specifically, entering is allowed from mouse (`Node.mousePressed/mouseReleased/mouseClicked`) or keyboard (`Node.keyPressed/keyReleased/keyTyped`) event handlers. It is not allowed to enter full-screen mode in response to `ESC` key. Attempting to enter full-screen mode from any other context will be ignored.

  If `Stage` was constructed as full-screen but not visible it will enter full-screen mode upon becoming visible, with the same limitations to when this is allowed to happen as when setting `fullScreen` to `true`.

- If the application was allowed to enter full-screen mode it will have limited keyboard input. It will only receive KEY_PRESSED and KEY_RELEASED events from the following keys: `UP, DOWN, LEFT, RIGHT, SPACE, TAB, PAGE_UP, PAGE_DOWN, HOME, END, ENTER`

Default value:
  false
See Also:
  - `isFullScreen()`
  - `setFullScreen(boolean)`
  - `fullScreenProperty()`

### title

public final StringProperty titleProperty
Defines the title of the `Stage`.

Default value:
  empty string
See Also:
  - `getTitle()`
  - `setTitle(String)`
  - `titleProperty()`

### iconified

public final ReadOnlyBooleanProperty iconifiedProperty
Defines whether the `Stage` is iconified or not.

In case that more `Stage` modes are set simultaneously their order of importance is iconified} `fullScreen`, `maximized` (from strongest to weakest).

On some mobile and embedded platforms setting this property to true will hide the `Stage` but not show an icon for it.

The property is read only because it can be changed externally by the underlying platform and therefore must not be bindable.

Default value:
  false
See Also:
  - `isIconified()`
  - `setIconified(boolean)`
  - `iconifiedProperty()`

### maximized

public final ReadOnlyBooleanProperty maximizedProperty
Defines whether the `Stage` is maximized or not.

In case that more `Stage` modes are set simultaneously their order of importance is `iconified`, `fullScreen`, maximized (from strongest to weakest).

The property is read only because it can be changed externally by the underlying platform and therefore must not be bindable.

Default value:
  false
Since:
  JavaFX 8.0
See Also:
  - `isMaximized()`
  - `setMaximized(boolean)`
  - `maximizedProperty()`

### alwaysOnTop

public final ReadOnlyBooleanProperty alwaysOnTopProperty
Defines whether this `Stage` is kept on top of other windows.

If some other window is already always-on-top then the relative order between these windows is unspecified (depends on platform).

If a security manager is present, the application must have the `FXPermission` "setWindowAlwaysOnTop" in order for this property to have any effect. If the application does not have permission, attempting to set this property will be ignored and the property value will be restored to `false`.

The property is read only because it can be changed externally by the underlying platform and therefore must not be bindable.

Default value:
  false
Since:
  JavaFX 8u20
See Also:
  - `isAlwaysOnTop()`
  - `setAlwaysOnTop(boolean)`
  - `alwaysOnTopProperty()`

### resizable

public final BooleanProperty resizableProperty
Defines whether the `Stage` is resizable or not by the user. Programatically you may still change the size of the Stage. This is a hint which allows the implementation to optionally make the Stage resizable by the user.

Warning: Since 8.0 the property cannot be bound and will throw `RuntimeException` on an attempt to do so. This is because the setting of resizable is asynchronous on some systems or generally might be set by the system / window manager.
Bidirectional binds are still allowed, as they don't block setting of the property by the system.

Default value:
  true
See Also:
  - `isResizable()`
  - `setResizable(boolean)`
  - `resizableProperty()`

### minWidth

public final DoubleProperty minWidthProperty
Defines the minimum width of this `Stage`.

Default value:
  0
Since:
  JavaFX 2.1
See Also:
  - `getMinWidth()`
  - `setMinWidth(double)`
  - `minWidthProperty()`

### minHeight

public final DoubleProperty minHeightProperty
Defines the minimum height of this `Stage`.

Default value:
  0
Since:
  JavaFX 2.1
See Also:
  - `getMinHeight()`
  - `setMinHeight(double)`
  - `minHeightProperty()`

### maxWidth

public final DoubleProperty maxWidthProperty
Defines the maximum width of this `Stage`.

Default value:
  Double.MAX_VALUE
Since:
  JavaFX 2.1
See Also:
  - `getMaxWidth()`
  - `setMaxWidth(double)`
  - `maxWidthProperty()`

### maxHeight

public final DoubleProperty maxHeightProperty
Defines the maximum height of this `Stage`.

Default value:
  Double.MAX_VALUE
Since:
  JavaFX 2.1
See Also:
  - `getMaxHeight()`
  - `setMaxHeight(double)`
  - `maxHeightProperty()`

### fullScreenExitKey

public final ObjectProperty<KeyCombination> fullScreenExitKeyProperty
Get the property for the Full Screen exit key combination.

Since:
  JavaFX 8.0
See Also:
  - `fullScreenExitKeyProperty()`

### fullScreenExitHint

public final ObjectProperty<String> fullScreenExitHintProperty

See Also:
  - `getFullScreenExitHint()`
  - `setFullScreenExitHint(String)`
  - `fullScreenExitHintProperty()`

## Constructor Details

### Stage

public Stage()
Creates a new instance of decorated `Stage`.

Throws:
  `IllegalStateException` - if this constructor is called on a thread other than the JavaFX Application Thread.

### Stage

public Stage(StageStyle style)
Creates a new instance of `Stage`.

Parameters:
  `style` - The style of the `Stage`
Throws:
  `IllegalStateException` - if this constructor is called on a thread other than the JavaFX Application Thread.

## Method Details

### setScene

public final void setScene(Scene value)
Specify the scene to be used on this stage.

Overrides:
  `setScene` in class `Window`

### show

public final void show()
Attempts to show this Window by setting visibility to true

Overrides:
  `show` in class `Window`

### showAndWait

public void showAndWait()
Shows this stage and waits for it to be hidden (closed) before returning to the caller. This method temporarily blocks processing of the current event, and starts a nested event loop to handle other events. This method must be called on the FX Application thread.

A Stage is hidden (closed) by one of the following means:

- the application calls the `Window.hide()` or `close()` method on this stage
- this stage has a non-null owner window, and its owner is closed
- the user closes the window via the window system (for example, by pressing the close button in the window decoration)

After the Stage is hidden, and the application has returned from the event handler to the event loop, the nested event loop terminates and this method returns to the caller.

For example, consider the following sequence of operations for different event handlers, assumed to execute in the order shown below:

    void evtHander1(...) {
         stage1.showAndWait();
         doSomethingAfterStage1Closed(...)
     }

     void evtHander2(...) {
         stage1.hide();
         doSomethingElseHere(...)
     }

evtHandler1 will block at the call to showAndWait. It will resume execution after stage1 is hidden and the current event handler, in this case evtHandler2, returns to the event loop. This means that doSomethingElseHere will execute before doSomethingAfterStage1Closed.

More than one stage may be shown with showAndWait. Each call will start a new nested event loop. The stages may be hidden in any order, but a particular nested event loop (and thus the showAndWait method for the associated stage) will only terminate after all inner event loops have also terminated.

For example, consider the following sequence of operations for different event handlers, assumed to execute in the order shown below:

    void evtHander1() {
         stage1.showAndWait();
         doSomethingAfterStage1Closed(...)
     }

     void evtHander2() {
         stage2.showAndWait();
         doSomethingAfterStage2Closed(...)
     }

     void evtHander3() {
         stage1.hide();
         doSomethingElseHere(...)
     }

     void evtHander4() {
         stage2.hide();
         doSomethingElseHereToo(...)
     }

evtHandler1 will block at the call to stage1.showAndWait, starting up a nested event loop just like in the previous example. evtHandler2 will then block at the call to stage2.showAndWait, starting up another (inner) nested event loop. The first call to stage1.showAndWait will resume execution after stage1 is hidden, but only after the inner nested event loop started by stage2.showAndWait has terminated. This means that the call to stage1.showAndWait won't return until after evtHandler2 has returned. The order of execution is: stage1.showAndWait, stage2.showAndWait, stage1.hide, doSomethingElseHere, stage2.hide, doSomethingElseHereToo, doSomethingAfterStage2Closed, doSomethingAfterStage1Closed.

This method must not be called on the primary stage or on a stage that is already visible. Additionally, it must either be called from an input event handler or from the run method of a Runnable passed to `Platform.runLater`. It must not be called during animation or layout processing.

Throws:
  `IllegalStateException` - if this method is called on a thread other than the JavaFX Application Thread.
  `IllegalStateException` - if this method is called during animation or layout processing.
  `IllegalStateException` - if this method is called on the primary stage.
  `IllegalStateException` - if this stage is already showing.
Since:
  JavaFX 2.2

### initStyle

public final void initStyle(StageStyle style)
Specifies the style for this stage. This must be done prior to making the stage visible. The style is one of: StageStyle.DECORATED, StageStyle.UNDECORATED, StageStyle.TRANSPARENT, or StageStyle.UTILITY.

Default value:
  StageStyle.DECORATED
Parameters:
  `style` - the style for this stage.
Throws:
  `IllegalStateException` - if this property is set after the stage has ever been made visible.

### getStyle

public final StageStyle getStyle()
Retrieves the style attribute for this stage.

Returns:
  the stage style.

### initModality

public final void initModality(Modality modality)
Specifies the modality for this stage. This must be done prior to making the stage visible. The modality is one of: Modality.NONE, Modality.WINDOW_MODAL, or Modality.APPLICATION_MODAL.

Default value:
  Modality.NONE
Parameters:
  `modality` - the modality for this stage.
Throws:
  `IllegalStateException` - if this property is set after the stage has ever been made visible.
  `IllegalStateException` - if this stage is the primary stage.

### getModality

public final Modality getModality()
Retrieves the modality attribute for this stage.

Returns:
  the modality.

### initOwner

public final void initOwner(Window owner)
Specifies the owner Window for this stage, or null for a top-level, unowned stage. This must be done prior to making the stage visible.

Default value:
  null
Parameters:
  `owner` - the owner for this stage.
Throws:
  `IllegalStateException` - if this property is set after the stage has ever been made visible.
  `IllegalStateException` - if this stage is the primary stage.

### getOwner

public final Window getOwner()
Retrieves the owner Window for this stage, or null for an unowned stage.

Returns:
  the owner Window.

### setFullScreen

public final void setFullScreen(boolean value)
Sets the value of the `fullScreen` property.

Property description:
  Specifies whether this `Stage` should be a full-screen, undecorated window.

  The implementation of full-screen mode is platform and profile-dependent.

  When set to `true`, the `Stage` will attempt to enter full-screen mode when visible. Set to `false` to return `Stage` to windowed mode. An `IllegalStateException` is thrown if this property is set on a thread other than the JavaFX Application Thread.

  The full-screen mode will be exited (and the `fullScreen` attribute will be set to `false`) if the full-screen `Stage` loses focus or if another `Stage` enters full-screen mode on the same `Screen`. Note that a `Stage` in full-screen mode can become invisible without losing its full-screen status and will again enter full-screen mode when the `Stage` becomes visible.

  If the platform supports multiple screens an application can control which `Screen` the Stage will enter full-screen mode on by setting its position to be within the bounds of that `Screen` prior to entering full-screen mode.

  However once in full-screen mode, `Stage`'s `x`, `y`, `width`, and `height` variables will continue to represent the non-full-screen position and size of the window; the same for `iconified`, `resizable`, `style`, and `opacity`. If changes are made to any of these attributes while in full-screen mode, upon exiting full-screen mode the `Stage` will assume those attributes.

  In case that more `Stage` modes are set simultaneously their order of importance is `iconified`, fullScreen, `maximized` (from strongest to weakest).

  The property is read only because it can be changed externally by the underlying platform and therefore must not be bindable.

  The user can unconditionally exit full-screen mode at any time by pressing `ESC`.

  If a security manager is present, the application must have the `FXPermission` "unrestrictedFullScreen" in order to enter full-screen mode with no restrictions. Applications without permission will have the following restrictions:

  - Applications can only enter full-screen mode in response to user input. More specifically, entering is allowed from mouse (`Node.mousePressed/mouseReleased/mouseClicked`) or keyboard (`Node.keyPressed/keyReleased/keyTyped`) event handlers. It is not allowed to enter full-screen mode in response to `ESC` key. Attempting to enter full-screen mode from any other context will be ignored.

    If `Stage` was constructed as full-screen but not visible it will enter full-screen mode upon becoming visible, with the same limitations to when this is allowed to happen as when setting `fullScreen` to `true`.

  - If the application was allowed to enter full-screen mode it will have limited keyboard input. It will only receive KEY_PRESSED and KEY_RELEASED events from the following keys: `UP, DOWN, LEFT, RIGHT, SPACE, TAB, PAGE_UP, PAGE_DOWN, HOME, END, ENTER`
Default value:
  false
Parameters:
  `value` - the value for the `fullScreen` property
See Also:
  - `isFullScreen()`
  - `fullScreenProperty()`

### isFullScreen

public final boolean isFullScreen()
Gets the value of the `fullScreen` property.

Property description:
  Specifies whether this `Stage` should be a full-screen, undecorated window.

  The implementation of full-screen mode is platform and profile-dependent.

  When set to `true`, the `Stage` will attempt to enter full-screen mode when visible. Set to `false` to return `Stage` to windowed mode. An `IllegalStateException` is thrown if this property is set on a thread other than the JavaFX Application Thread.

  The full-screen mode will be exited (and the `fullScreen` attribute will be set to `false`) if the full-screen `Stage` loses focus or if another `Stage` enters full-screen mode on the same `Screen`. Note that a `Stage` in full-screen mode can become invisible without losing its full-screen status and will again enter full-screen mode when the `Stage` becomes visible.

  If the platform supports multiple screens an application can control which `Screen` the Stage will enter full-screen mode on by setting its position to be within the bounds of that `Screen` prior to entering full-screen mode.

  However once in full-screen mode, `Stage`'s `x`, `y`, `width`, and `height` variables will continue to represent the non-full-screen position and size of the window; the same for `iconified`, `resizable`, `style`, and `opacity`. If changes are made to any of these attributes while in full-screen mode, upon exiting full-screen mode the `Stage` will assume those attributes.

  In case that more `Stage` modes are set simultaneously their order of importance is `iconified`, fullScreen, `maximized` (from strongest to weakest).

  The property is read only because it can be changed externally by the underlying platform and therefore must not be bindable.

  The user can unconditionally exit full-screen mode at any time by pressing `ESC`.

  If a security manager is present, the application must have the `FXPermission` "unrestrictedFullScreen" in order to enter full-screen mode with no restrictions. Applications without permission will have the following restrictions:

  - Applications can only enter full-screen mode in response to user input. More specifically, entering is allowed from mouse (`Node.mousePressed/mouseReleased/mouseClicked`) or keyboard (`Node.keyPressed/keyReleased/keyTyped`) event handlers. It is not allowed to enter full-screen mode in response to `ESC` key. Attempting to enter full-screen mode from any other context will be ignored.

    If `Stage` was constructed as full-screen but not visible it will enter full-screen mode upon becoming visible, with the same limitations to when this is allowed to happen as when setting `fullScreen` to `true`.

  - If the application was allowed to enter full-screen mode it will have limited keyboard input. It will only receive KEY_PRESSED and KEY_RELEASED events from the following keys: `UP, DOWN, LEFT, RIGHT, SPACE, TAB, PAGE_UP, PAGE_DOWN, HOME, END, ENTER`
Default value:
  false
Returns:
  the value of the `fullScreen` property
See Also:
  - `setFullScreen(boolean)`
  - `fullScreenProperty()`

### fullScreenProperty

public final ReadOnlyBooleanProperty fullScreenProperty()
Specifies whether this `Stage` should be a full-screen, undecorated window.

The implementation of full-screen mode is platform and profile-dependent.

When set to `true`, the `Stage` will attempt to enter full-screen mode when visible. Set to `false` to return `Stage` to windowed mode. An `IllegalStateException` is thrown if this property is set on a thread other than the JavaFX Application Thread.

The full-screen mode will be exited (and the `fullScreen` attribute will be set to `false`) if the full-screen `Stage` loses focus or if another `Stage` enters full-screen mode on the same `Screen`. Note that a `Stage` in full-screen mode can become invisible without losing its full-screen status and will again enter full-screen mode when the `Stage` becomes visible.

If the platform supports multiple screens an application can control which `Screen` the Stage will enter full-screen mode on by setting its position to be within the bounds of that `Screen` prior to entering full-screen mode.

However once in full-screen mode, `Stage`'s `x`, `y`, `width`, and `height` variables will continue to represent the non-full-screen position and size of the window; the same for `iconified`, `resizable`, `style`, and `opacity`. If changes are made to any of these attributes while in full-screen mode, upon exiting full-screen mode the `Stage` will assume those attributes.

In case that more `Stage` modes are set simultaneously their order of importance is `iconified`, fullScreen, `maximized` (from strongest to weakest).

The property is read only because it can be changed externally by the underlying platform and therefore must not be bindable.

The user can unconditionally exit full-screen mode at any time by pressing `ESC`.

If a security manager is present, the application must have the `FXPermission` "unrestrictedFullScreen" in order to enter full-screen mode with no restrictions. Applications without permission will have the following restrictions:

- Applications can only enter full-screen mode in response to user input. More specifically, entering is allowed from mouse (`Node.mousePressed/mouseReleased/mouseClicked`) or keyboard (`Node.keyPressed/keyReleased/keyTyped`) event handlers. It is not allowed to enter full-screen mode in response to `ESC` key. Attempting to enter full-screen mode from any other context will be ignored.

  If `Stage` was constructed as full-screen but not visible it will enter full-screen mode upon becoming visible, with the same limitations to when this is allowed to happen as when setting `fullScreen` to `true`.

- If the application was allowed to enter full-screen mode it will have limited keyboard input. It will only receive KEY_PRESSED and KEY_RELEASED events from the following keys: `UP, DOWN, LEFT, RIGHT, SPACE, TAB, PAGE_UP, PAGE_DOWN, HOME, END, ENTER`

Default value:
  false
Returns:
  the `fullScreen` property
See Also:
  - `isFullScreen()`
  - `setFullScreen(boolean)`

### getIcons

public final ObservableList<Image> getIcons()
Gets the icon images to be used in the window decorations and when minimized. The images should be different sizes of the same image and the best size will be chosen, eg. 16x16, 32,32.

Returns:
  An observable list of icons of this window

### setTitle

public final void setTitle(String value)
Sets the value of the `title` property.

Property description:
  Defines the title of the `Stage`.
Default value:
  empty string
Parameters:
  `value` - the value for the `title` property
See Also:
  - `getTitle()`
  - `titleProperty()`

### getTitle

public final String getTitle()
Gets the value of the `title` property.

Property description:
  Defines the title of the `Stage`.
Default value:
  empty string
Returns:
  the value of the `title` property
See Also:
  - `setTitle(String)`
  - `titleProperty()`

### titleProperty

public final StringProperty titleProperty()
Defines the title of the `Stage`.

Default value:
  empty string
Returns:
  the `title` property
See Also:
  - `getTitle()`
  - `setTitle(String)`

### setIconified

public final void setIconified(boolean value)
Sets the value of the `iconified` property.

Property description:
  Defines whether the `Stage` is iconified or not.

  In case that more `Stage` modes are set simultaneously their order of importance is iconified} `fullScreen`, `maximized` (from strongest to weakest).

  On some mobile and embedded platforms setting this property to true will hide the `Stage` but not show an icon for it.

  The property is read only because it can be changed externally by the underlying platform and therefore must not be bindable.

Default value:
  false
Parameters:
  `value` - the value for the `iconified` property
See Also:
  - `isIconified()`
  - `iconifiedProperty()`

### isIconified

public final boolean isIconified()
Gets the value of the `iconified` property.

Property description:
  Defines whether the `Stage` is iconified or not.

  In case that more `Stage` modes are set simultaneously their order of importance is iconified} `fullScreen`, `maximized` (from strongest to weakest).

  On some mobile and embedded platforms setting this property to true will hide the `Stage` but not show an icon for it.

  The property is read only because it can be changed externally by the underlying platform and therefore must not be bindable.

Default value:
  false
Returns:
  the value of the `iconified` property
See Also:
  - `setIconified(boolean)`
  - `iconifiedProperty()`

### iconifiedProperty

public final ReadOnlyBooleanProperty iconifiedProperty()
Defines whether the `Stage` is iconified or not.

In case that more `Stage` modes are set simultaneously their order of importance is iconified} `fullScreen`, `maximized` (from strongest to weakest).

On some mobile and embedded platforms setting this property to true will hide the `Stage` but not show an icon for it.

The property is read only because it can be changed externally by the underlying platform and therefore must not be bindable.

Default value:
  false
Returns:
  the `iconified` property
See Also:
  - `isIconified()`
  - `setIconified(boolean)`

### setMaximized

public final void setMaximized(boolean value)
Sets the value of the `maximized` property.

Property description:
  Defines whether the `Stage` is maximized or not.

  In case that more `Stage` modes are set simultaneously their order of importance is `iconified`, `fullScreen`, maximized (from strongest to weakest).

  The property is read only because it can be changed externally by the underlying platform and therefore must not be bindable.

Default value:
  false
Parameters:
  `value` - the value for the `maximized` property
Since:
  JavaFX 8.0
See Also:
  - `isMaximized()`
  - `maximizedProperty()`

### isMaximized

public final boolean isMaximized()
Gets the value of the `maximized` property.

Property description:
  Defines whether the `Stage` is maximized or not.

  In case that more `Stage` modes are set simultaneously their order of importance is `iconified`, `fullScreen`, maximized (from strongest to weakest).

  The property is read only because it can be changed externally by the underlying platform and therefore must not be bindable.

Default value:
  false
Returns:
  the value of the `maximized` property
Since:
  JavaFX 8.0
See Also:
  - `setMaximized(boolean)`
  - `maximizedProperty()`

### maximizedProperty

public final ReadOnlyBooleanProperty maximizedProperty()
Defines whether the `Stage` is maximized or not.

In case that more `Stage` modes are set simultaneously their order of importance is `iconified`, `fullScreen`, maximized (from strongest to weakest).

The property is read only because it can be changed externally by the underlying platform and therefore must not be bindable.

Default value:
  false
Returns:
  the `maximized` property
Since:
  JavaFX 8.0
See Also:
  - `isMaximized()`
  - `setMaximized(boolean)`

### setAlwaysOnTop

public final void setAlwaysOnTop(boolean value)
Sets the value of the `alwaysOnTop` property.

Property description:
  Defines whether this `Stage` is kept on top of other windows.

  If some other window is already always-on-top then the relative order between these windows is unspecified (depends on platform).

  If a security manager is present, the application must have the `FXPermission` "setWindowAlwaysOnTop" in order for this property to have any effect. If the application does not have permission, attempting to set this property will be ignored and the property value will be restored to `false`.

  The property is read only because it can be changed externally by the underlying platform and therefore must not be bindable.

Default value:
  false
Parameters:
  `value` - the value for the `alwaysOnTop` property
Since:
  JavaFX 8u20
See Also:
  - `isAlwaysOnTop()`
  - `alwaysOnTopProperty()`

### isAlwaysOnTop

public final boolean isAlwaysOnTop()
Gets the value of the `alwaysOnTop` property.

Property description:
  Defines whether this `Stage` is kept on top of other windows.

  If some other window is already always-on-top then the relative order between these windows is unspecified (depends on platform).

  If a security manager is present, the application must have the `FXPermission` "setWindowAlwaysOnTop" in order for this property to have any effect. If the application does not have permission, attempting to set this property will be ignored and the property value will be restored to `false`.

  The property is read only because it can be changed externally by the underlying platform and therefore must not be bindable.

Default value:
  false
Returns:
  the value of the `alwaysOnTop` property
Since:
  JavaFX 8u20
See Also:
  - `setAlwaysOnTop(boolean)`
  - `alwaysOnTopProperty()`

### alwaysOnTopProperty

public final ReadOnlyBooleanProperty alwaysOnTopProperty()
Defines whether this `Stage` is kept on top of other windows.

If some other window is already always-on-top then the relative order between these windows is unspecified (depends on platform).

If a security manager is present, the application must have the `FXPermission` "setWindowAlwaysOnTop" in order for this property to have any effect. If the application does not have permission, attempting to set this property will be ignored and the property value will be restored to `false`.

The property is read only because it can be changed externally by the underlying platform and therefore must not be bindable.

Default value:
  false
Returns:
  the `alwaysOnTop` property
Since:
  JavaFX 8u20
See Also:
  - `isAlwaysOnTop()`
  - `setAlwaysOnTop(boolean)`

### setResizable

public final void setResizable(boolean value)
Sets the value of the `resizable` property.

Property description:
  Defines whether the `Stage` is resizable or not by the user. Programatically you may still change the size of the Stage. This is a hint which allows the implementation to optionally make the Stage resizable by the user.

  Warning: Since 8.0 the property cannot be bound and will throw `RuntimeException` on an attempt to do so. This is because the setting of resizable is asynchronous on some systems or generally might be set by the system / window manager.
  Bidirectional binds are still allowed, as they don't block setting of the property by the system.

Default value:
  true
Parameters:
  `value` - the value for the `resizable` property
See Also:
  - `isResizable()`
  - `resizableProperty()`

### isResizable

public final boolean isResizable()
Gets the value of the `resizable` property.

Property description:
  Defines whether the `Stage` is resizable or not by the user. Programatically you may still change the size of the Stage. This is a hint which allows the implementation to optionally make the Stage resizable by the user.

  Warning: Since 8.0 the property cannot be bound and will throw `RuntimeException` on an attempt to do so. This is because the setting of resizable is asynchronous on some systems or generally might be set by the system / window manager.
  Bidirectional binds are still allowed, as they don't block setting of the property by the system.

Default value:
  true
Returns:
  the value of the `resizable` property
See Also:
  - `setResizable(boolean)`
  - `resizableProperty()`

### resizableProperty

public final BooleanProperty resizableProperty()
Defines whether the `Stage` is resizable or not by the user. Programatically you may still change the size of the Stage. This is a hint which allows the implementation to optionally make the Stage resizable by the user.

Warning: Since 8.0 the property cannot be bound and will throw `RuntimeException` on an attempt to do so. This is because the setting of resizable is asynchronous on some systems or generally might be set by the system / window manager.
Bidirectional binds are still allowed, as they don't block setting of the property by the system.

Default value:
  true
Returns:
  the `resizable` property
See Also:
  - `isResizable()`
  - `setResizable(boolean)`

### setMinWidth

public final void setMinWidth(double value)
Sets the value of the `minWidth` property.

Property description:
  Defines the minimum width of this `Stage`.
Default value:
  0
Parameters:
  `value` - the value for the `minWidth` property
Since:
  JavaFX 2.1
See Also:
  - `getMinWidth()`
  - `minWidthProperty()`

### getMinWidth

public final double getMinWidth()
Gets the value of the `minWidth` property.

Property description:
  Defines the minimum width of this `Stage`.
Default value:
  0
Returns:
  the value of the `minWidth` property
Since:
  JavaFX 2.1
See Also:
  - `setMinWidth(double)`
  - `minWidthProperty()`

### minWidthProperty

public final DoubleProperty minWidthProperty()
Defines the minimum width of this `Stage`.

Default value:
  0
Returns:
  the `minWidth` property
Since:
  JavaFX 2.1
See Also:
  - `getMinWidth()`
  - `setMinWidth(double)`

### setMinHeight

public final void setMinHeight(double value)
Sets the value of the `minHeight` property.

Property description:
  Defines the minimum height of this `Stage`.
Default value:
  0
Parameters:
  `value` - the value for the `minHeight` property
Since:
  JavaFX 2.1
See Also:
  - `getMinHeight()`
  - `minHeightProperty()`

### getMinHeight

public final double getMinHeight()
Gets the value of the `minHeight` property.

Property description:
  Defines the minimum height of this `Stage`.
Default value:
  0
Returns:
  the value of the `minHeight` property
Since:
  JavaFX 2.1
See Also:
  - `setMinHeight(double)`
  - `minHeightProperty()`

### minHeightProperty

public final DoubleProperty minHeightProperty()
Defines the minimum height of this `Stage`.

Default value:
  0
Returns:
  the `minHeight` property
Since:
  JavaFX 2.1
See Also:
  - `getMinHeight()`
  - `setMinHeight(double)`

### setMaxWidth

public final void setMaxWidth(double value)
Sets the value of the `maxWidth` property.

Property description:
  Defines the maximum width of this `Stage`.
Default value:
  Double.MAX_VALUE
Parameters:
  `value` - the value for the `maxWidth` property
Since:
  JavaFX 2.1
See Also:
  - `getMaxWidth()`
  - `maxWidthProperty()`

### getMaxWidth

public final double getMaxWidth()
Gets the value of the `maxWidth` property.

Property description:
  Defines the maximum width of this `Stage`.
Default value:
  Double.MAX_VALUE
Returns:
  the value of the `maxWidth` property
Since:
  JavaFX 2.1
See Also:
  - `setMaxWidth(double)`
  - `maxWidthProperty()`

### maxWidthProperty

public final DoubleProperty maxWidthProperty()
Defines the maximum width of this `Stage`.

Default value:
  Double.MAX_VALUE
Returns:
  the `maxWidth` property
Since:
  JavaFX 2.1
See Also:
  - `getMaxWidth()`
  - `setMaxWidth(double)`

### setMaxHeight

public final void setMaxHeight(double value)
Sets the value of the `maxHeight` property.

Property description:
  Defines the maximum height of this `Stage`.
Default value:
  Double.MAX_VALUE
Parameters:
  `value` - the value for the `maxHeight` property
Since:
  JavaFX 2.1
See Also:
  - `getMaxHeight()`
  - `maxHeightProperty()`

### getMaxHeight

public final double getMaxHeight()
Gets the value of the `maxHeight` property.

Property description:
  Defines the maximum height of this `Stage`.
Default value:
  Double.MAX_VALUE
Returns:
  the value of the `maxHeight` property
Since:
  JavaFX 2.1
See Also:
  - `setMaxHeight(double)`
  - `maxHeightProperty()`

### maxHeightProperty

public final DoubleProperty maxHeightProperty()
Defines the maximum height of this `Stage`.

Default value:
  Double.MAX_VALUE
Returns:
  the `maxHeight` property
Since:
  JavaFX 2.1
See Also:
  - `getMaxHeight()`
  - `setMaxHeight(double)`

### toFront

public void toFront()
Bring the `Window` to the foreground. If the `Window` is already in the foreground there is no visible difference.

### toBack

public void toBack()
Send the `Window` to the background. If the `Window` is already in the background there is no visible difference. This action places this `Window` at the bottom of the stacking order on platforms that support stacking.

### close

public void close()
Closes this `Stage`. This call is equivalent to `hide()`.

### setFullScreenExitKeyCombination

public final void setFullScreenExitKeyCombination(KeyCombination keyCombination)
Specifies the KeyCombination that will allow the user to exit full screen mode. A value of KeyCombination.NO_MATCH will not match any KeyEvent and will make it so the user is not able to escape from Full Screen mode. A value of null indicates that the default platform specific key combination should be used.

An internal copy of this value is made when entering full-screen mode and will be used to trigger the exit from the mode. If a security manager is present, the application must have the `FXPermission` "unrestrictedFullScreen" to modify the exit key combination. If the application does not have permission, the value of this property will be ignored, in which case the default key combination will be used.

Parameters:
  `keyCombination` - the key combination to exit on
Since:
  JavaFX 8.0

### getFullScreenExitKeyCombination

public final KeyCombination getFullScreenExitKeyCombination()
Get the current sequence used to exit Full Screen mode.

Returns:
  the current setting (null for system default)
Since:
  JavaFX 8.0

### fullScreenExitKeyProperty

public final ObjectProperty<KeyCombination> fullScreenExitKeyProperty()
Get the property for the Full Screen exit key combination.

Returns:
  the property.
Since:
  JavaFX 8.0

### setFullScreenExitHint

public final void setFullScreenExitHint(String value)
Specifies the text to show when a user enters full screen mode, usually used to indicate the way a user should go about exiting out of full screen mode. A value of null will result in the default per-locale message being displayed. If set to the empty string, then no message will be displayed.

If a security manager is present, the application must have the `FXPermission` "unrestrictedFullScreen" to modify the exit hint. If the application does not have permission, the value of this property will be ignored, in which case the default message will be displayed.

Parameters:
  `value` - the string to be displayed.
Since:
  JavaFX 8.0

### getFullScreenExitHint

public final String getFullScreenExitHint()
Gets the value of the `fullScreenExitHint` property.

Property description:
Returns:
  the value of the `fullScreenExitHint` property
See Also:
  - `setFullScreenExitHint(String)`
  - `fullScreenExitHintProperty()`

### fullScreenExitHintProperty

public final ObjectProperty<String> fullScreenExitHintProperty()

Returns:
  the `fullScreenExitHint` property
See Also:
  - `getFullScreenExitHint()`
  - `setFullScreenExitHint(String)`