# Class Window

java.lang.Object
javafx.stage.Window

All Implemented Interfaces:
  `EventTarget`

Direct Known Subclasses:
  `PopupWindow, Stage`

public class Window extends Object implements EventTarget
A top level window within which a scene is hosted, and with which the user interacts. A Window might be a `Stage`, `PopupWindow`, or other such top level window.

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

Some `Window` properties are read-only, even though they have corresponding set methods, because they can be changed externally by the underlying platform, and therefore must not be bindable. Further, these properties might be ignored on some platforms, depending on whether or not there is a window manager and how it is configured. For example, a tiling window manager might ignore the `x` and `y` properties, or treat them as hints, placing the window in a location of its choosing.

Since:
  JavaFX 2.0

- ## Property Summary

  Properties
  Type
  Property
  Description
  `final ObjectProperty<EventDispatcher>`
  `eventDispatcher`
  Specifies the event dispatcher for this node.
  `final ReadOnlyBooleanProperty`
  `focused`
  Whether or not this `Window` has the keyboard or input focus.
  `final BooleanProperty`
  `forceIntegerRenderScale`
  Boolean property that controls whether only integer render scales are set by default by the system when there is a change in the associated output scale.
  `final ReadOnlyDoubleProperty`
  `height`
  The height of this `Window`.
  `final ObjectProperty<EventHandler<WindowEvent>>`
  `onCloseRequest`
  Called when there is an external request to close this `Window`.
  `final ObjectProperty<EventHandler<WindowEvent>>`
  `onHidden`
  Called just after the Window has been hidden.
  `final ObjectProperty<EventHandler<WindowEvent>>`
  `onHiding`
  Called just prior to the Window being hidden.
  `final ObjectProperty<EventHandler<WindowEvent>>`
  `onShowing`
  Called just prior to the Window being shown.
  `final ObjectProperty<EventHandler<WindowEvent>>`
  `onShown`
  Called just after the Window is shown.
  `final DoubleProperty`
  `opacity`
  Defines the opacity of the `Window` as a value between 0.0 and 1.0.
  `final ReadOnlyDoubleProperty`
  `outputScaleX`
  The scale that the `Window` will apply to horizontal scene coordinates in all stages of rendering and compositing the output to the screen or other destination device.
  `final ReadOnlyDoubleProperty`
  `outputScaleY`
  The scale that the `Window` will apply to vertical scene coordinates in all stages of rendering and compositing the output to the screen or other destination device.
  `final DoubleProperty`
  `renderScaleX`
  The horizontal scale that the `Window` will use when rendering its `Scene` to the rendering buffer.
  `final DoubleProperty`
  `renderScaleY`
  The vertical scale that the `Window` will use when rendering its `Scene` to the rendering buffer.
  `final ReadOnlyObjectProperty<Scene>`
  `scene`
  The `Scene` to be rendered on this `Window`.
  `final ReadOnlyBooleanProperty`
  `showing`
  Whether or not this `Window` is showing (that is, open on the user's system).
  `final ReadOnlyDoubleProperty`
  `width`
  The width of this `Window`.
  `final ReadOnlyDoubleProperty`
  `x`
  The horizontal location of this `Window` on the screen.
  `final ReadOnlyDoubleProperty`
  `y`
  The vertical location of this `Window` on the screen.

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `Window()`
  Constructor for subclasses to call.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final <T extends Event>
  void`
  `addEventFilter(EventType<T> eventType, EventHandler<? super T> eventFilter)`
  Registers an event filter for this target.
  `final <T extends Event>
  void`
  `addEventHandler(EventType<T> eventType, EventHandler<? super T> eventHandler)`
  Registers an event handler for this target.
  `EventDispatchChain`
  `buildEventDispatchChain(EventDispatchChain tail)`
  Construct an event dispatch chain for this target.
  `void`
  `centerOnScreen()`
  Sets x and y properties on this Window so that it is centered on the current screen.
  `final ObjectProperty<EventDispatcher>`
  `eventDispatcherProperty()`
  Specifies the event dispatcher for this node.
  `final void`
  `fireEvent(Event event)`
  Fires the specified event.
  `final ReadOnlyBooleanProperty`
  `focusedProperty()`
  Whether or not this `Window` has the keyboard or input focus.
  `final BooleanProperty`
  `forceIntegerRenderScaleProperty()`
  Boolean property that controls whether only integer render scales are set by default by the system when there is a change in the associated output scale.
  `final EventDispatcher`
  `getEventDispatcher()`
  Gets the value of the `eventDispatcher` property.
  `final double`
  `getHeight()`
  Gets the value of the `height` property.
  `final EventHandler<WindowEvent>`
  `getOnCloseRequest()`
  Gets the value of the `onCloseRequest` property.
  `final EventHandler<WindowEvent>`
  `getOnHidden()`
  Gets the value of the `onHidden` property.
  `final EventHandler<WindowEvent>`
  `getOnHiding()`
  Gets the value of the `onHiding` property.
  `final EventHandler<WindowEvent>`
  `getOnShowing()`
  Gets the value of the `onShowing` property.
  `final EventHandler<WindowEvent>`
  `getOnShown()`
  Gets the value of the `onShown` property.
  `final double`
  `getOpacity()`
  Gets the value of the `opacity` property.
  `final double`
  `getOutputScaleX()`
  Gets the value of the `outputScaleX` property.
  `final double`
  `getOutputScaleY()`
  Gets the value of the `outputScaleY` property.
  `final ObservableMap<Object,Object>`
  `getProperties()`
  Returns an observable map of properties on this node for use primarily by application developers.
  `final double`
  `getRenderScaleX()`
  Gets the value of the `renderScaleX` property.
  `final double`
  `getRenderScaleY()`
  Gets the value of the `renderScaleY` property.
  `final Scene`
  `getScene()`
  Gets the value of the `scene` property.
  `Object`
  `getUserData()`
  Returns a previously set Object property, or null if no such property has been set using the `setUserData(java.lang.Object)` method.
  `final double`
  `getWidth()`
  Gets the value of the `width` property.
  `static ObservableList<Window>`
  `getWindows()`
  Returns a list containing a reference to the currently showing JavaFX windows.
  `final double`
  `getX()`
  Gets the value of the `x` property.
  `final double`
  `getY()`
  Gets the value of the `y` property.
  `boolean`
  `hasProperties()`
  Tests if Window has properties.
  `final ReadOnlyDoubleProperty`
  `heightProperty()`
  The height of this `Window`.
  `void`
  `hide()`
  Attempts to hide this Window by setting the visibility to false.
  `final boolean`
  `isFocused()`
  Gets the value of the `focused` property.
  `final boolean`
  `isForceIntegerRenderScale()`
  Gets the value of the `forceIntegerRenderScale` property.
  `final boolean`
  `isShowing()`
  Gets the value of the `showing` property.
  `final ObjectProperty<EventHandler<WindowEvent>>`
  `onCloseRequestProperty()`
  Called when there is an external request to close this `Window`.
  `final ObjectProperty<EventHandler<WindowEvent>>`
  `onHiddenProperty()`
  Called just after the Window has been hidden.
  `final ObjectProperty<EventHandler<WindowEvent>>`
  `onHidingProperty()`
  Called just prior to the Window being hidden.
  `final ObjectProperty<EventHandler<WindowEvent>>`
  `onShowingProperty()`
  Called just prior to the Window being shown.
  `final ObjectProperty<EventHandler<WindowEvent>>`
  `onShownProperty()`
  Called just after the Window is shown.
  `final DoubleProperty`
  `opacityProperty()`
  Defines the opacity of the `Window` as a value between 0.0 and 1.0.
  `final ReadOnlyDoubleProperty`
  `outputScaleXProperty()`
  The scale that the `Window` will apply to horizontal scene coordinates in all stages of rendering and compositing the output to the screen or other destination device.
  `final ReadOnlyDoubleProperty`
  `outputScaleYProperty()`
  The scale that the `Window` will apply to vertical scene coordinates in all stages of rendering and compositing the output to the screen or other destination device.
  `final <T extends Event>
  void`
  `removeEventFilter(EventType<T> eventType, EventHandler<? super T> eventFilter)`
  Unregisters a previously registered event filter from this target.
  `final <T extends Event>
  void`
  `removeEventHandler(EventType<T> eventType, EventHandler<? super T> eventHandler)`
  Unregisters a previously registered event handler from this target.
  `final DoubleProperty`
  `renderScaleXProperty()`
  The horizontal scale that the `Window` will use when rendering its `Scene` to the rendering buffer.
  `final DoubleProperty`
  `renderScaleYProperty()`
  The vertical scale that the `Window` will use when rendering its `Scene` to the rendering buffer.
  `final void`
  `requestFocus()`
  Requests that this `Window` get the input focus.
  `final ReadOnlyObjectProperty<Scene>`
  `sceneProperty()`
  The `Scene` to be rendered on this `Window`.
  `final void`
  `setEventDispatcher(EventDispatcher value)`
  Sets the value of the `eventDispatcher` property.
  `protected final <T extends Event>
  void`
  `setEventHandler(EventType<T> eventType, EventHandler<? super T> eventHandler)`
  Sets the handler to use for this event type.
  `final void`
  `setForceIntegerRenderScale(boolean forced)`
  Sets the value of the `forceIntegerRenderScale` property.
  `final void`
  `setHeight(double value)`
  Sets the value of the `height` property.
  `final void`
  `setOnCloseRequest(EventHandler<WindowEvent> value)`
  Sets the value of the `onCloseRequest` property.
  `final void`
  `setOnHidden(EventHandler<WindowEvent> value)`
  Sets the value of the `onHidden` property.
  `final void`
  `setOnHiding(EventHandler<WindowEvent> value)`
  Sets the value of the `onHiding` property.
  `final void`
  `setOnShowing(EventHandler<WindowEvent> value)`
  Sets the value of the `onShowing` property.
  `final void`
  `setOnShown(EventHandler<WindowEvent> value)`
  Sets the value of the `onShown` property.
  `final void`
  `setOpacity(double value)`
  Sets the value of the `opacity` property.
  `final void`
  `setRenderScaleX(double scale)`
  Sets the value of the `renderScaleX` property.
  `final void`
  `setRenderScaleY(double scale)`
  Sets the value of the `renderScaleY` property.
  `protected void`
  `setScene(Scene value)`
  Sets the value of the `scene` property.
  `void`
  `setUserData(Object value)`
  Convenience method for setting a single Object property that can be retrieved at a later date.
  `final void`
  `setWidth(double value)`
  Sets the value of the `width` property.
  `final void`
  `setX(double value)`
  Sets the value of the `x` property.
  `final void`
  `setY(double value)`
  Sets the value of the `y` property.
  `protected void`
  `show()`
  Attempts to show this Window by setting visibility to true
  `final ReadOnlyBooleanProperty`
  `showingProperty()`
  Whether or not this `Window` is showing (that is, open on the user's system).
  `void`
  `sizeToScene()`
  Set the width and height of this Window to match the size of the content of this Window's Scene.
  `final ReadOnlyDoubleProperty`
  `widthProperty()`
  The width of this `Window`.
  `final ReadOnlyDoubleProperty`
  `xProperty()`
  The horizontal location of this `Window` on the screen.
  `final ReadOnlyDoubleProperty`
  `yProperty()`
  The vertical location of this `Window` on the screen.

  ### Methods declared in class Object

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

- ## Property Details

  - ### outputScaleX

    public final ReadOnlyDoubleProperty outputScaleXProperty
    The scale that the `Window` will apply to horizontal scene coordinates in all stages of rendering and compositing the output to the screen or other destination device. This property is updated asynchronously by the system at various times including:
    - Window creation
    - At some point during moving a window to a new `Screen` which may be before or after the `Screen` property is updated.
    - In response to a change in user preferences for output scaling.
    Since:
      9
    See Also:
      - `getOutputScaleX()`
      - `outputScaleXProperty()`

  - ### outputScaleY

    public final ReadOnlyDoubleProperty outputScaleYProperty
    The scale that the `Window` will apply to vertical scene coordinates in all stages of rendering and compositing the output to the screen or other destination device. This property is updated asynchronously by the system at various times including:
    - Window creation
    - At some point during moving a window to a new `Screen` which may be before or after the `Screen` property is updated.
    - In response to a change in user preferences for output scaling.
    Since:
      9
    See Also:
      - `getOutputScaleY()`
      - `outputScaleYProperty()`

  - ### forceIntegerRenderScale

    public final BooleanProperty forceIntegerRenderScaleProperty
    Boolean property that controls whether only integer render scales are set by default by the system when there is a change in the associated output scale. The `renderScale` properties will be updated directly and simultaneously with any changes in the associated `outputScale` properties, but the values can be overridden by subsequent calls to the `setRenderScale` setters or through appropriate use of binding. This property will not prevent setting non-integer scales directly using the `renderScale` property object or the convenience setter method.
    Default value:
      false
    Since:
      9
    See Also:
      - `isForceIntegerRenderScale()`
      - `setForceIntegerRenderScale(boolean)`
      - `forceIntegerRenderScaleProperty()`

  - ### renderScaleX

    public final DoubleProperty renderScaleXProperty
    The horizontal scale that the `Window` will use when rendering its `Scene` to the rendering buffer. This property is automatically updated whenever there is a change in the `outputScaleX` property and can be overridden either by calling `setRenderScaleX()` in response to a listener on the `outputScaleX` property or by binding it appropriately.
    Default value:
      outputScaleX
    Since:
      9
    See Also:
      - `getRenderScaleX()`
      - `setRenderScaleX(double)`
      - `renderScaleXProperty()`

  - ### renderScaleY

    public final DoubleProperty renderScaleYProperty
    The vertical scale that the `Window` will use when rendering its `Scene` to the rendering buffer. This property is automatically updated whenever there is a change in the `outputScaleY` property and can be overridden either by calling `setRenderScaleY()` in response to a listener on the `outputScaleY` property or by binding it appropriately.
    Default value:
      outputScaleY
    Since:
      9
    See Also:
      - `getRenderScaleY()`
      - `setRenderScaleY(double)`
      - `renderScaleYProperty()`

  - ### x

    public final ReadOnlyDoubleProperty xProperty
    The horizontal location of this `Window` on the screen. Changing this attribute will move the `Window` horizontally. If this `Window` is an instance of `Stage`, changing this attribute will not visually affect the `Window` while `fullScreen` is true, but will be honored by the `Window` once `fullScreen` becomes false.

    This property is read-only because it can be changed externally by the underlying platform. Further, setting this property might be ignored on some platforms.

    See Also:
      - `getX()`
      - `setX(double)`
      - `xProperty()`

  - ### y

    public final ReadOnlyDoubleProperty yProperty
    The vertical location of this `Window` on the screen. Changing this attribute will move the `Window` vertically. If this `Window` is an instance of `Stage`, changing this attribute will not visually affect the `Window` while `fullScreen` is true, but will be honored by the `Window` once `fullScreen` becomes false.

    This property is read-only because it can be changed externally by the underlying platform. Further, setting this property might be ignored on some platforms.

    See Also:
      - `getY()`
      - `setY(double)`
      - `yProperty()`

  - ### width

    public final ReadOnlyDoubleProperty widthProperty
    The width of this `Window`. Changing this attribute will narrow or widen the width of the `Window`. This value includes any and all decorations which may be added by the Operating System such as resizable frame handles. Typical applications will set the `Scene` width instead. This `Window` will take its width from the scene if it has never been set by the application. Resizing the window by end user does not count as a setting the width by the application. If this `Window` is an instance of `Stage`, changing this attribute will not visually affect the `Window` while `fullScreen` is true, but will be honored by the `Window` once `fullScreen` becomes false.

    This property is read-only because it can be changed externally by the underlying platform. Further, setting this property might be ignored on some platforms.

    See Also:
      - `getWidth()`
      - `setWidth(double)`
      - `widthProperty()`

  - ### height

    public final ReadOnlyDoubleProperty heightProperty
    The height of this `Window`. Changing this attribute will shrink or heighten the height of the `Window`. This value includes any and all decorations which may be added by the Operating System such as the title bar. Typical applications will set the `Scene` height instead. This window will take its height from the scene if it has never been set by the application. Resizing this window by end user does not count as a setting the height by the application. If this `Window` is an instance of `Stage`, changing this attribute will not visually affect the `Window` while `fullScreen` is true, but will be honored by the `Window` once `fullScreen` becomes false.

    This property is read-only because it can be changed externally by the underlying platform. Further, setting this property might be ignored on some platforms.

    See Also:
      - `getHeight()`
      - `setHeight(double)`
      - `heightProperty()`

  - ### focused

    public final ReadOnlyBooleanProperty focusedProperty
    Whether or not this `Window` has the keyboard or input focus.
    See Also:
      - `isFocused()`
      - `focusedProperty()`

  - ### scene

    public final ReadOnlyObjectProperty<Scene> sceneProperty
    The `Scene` to be rendered on this `Window`. There can only be one `Scene` on the `Window` at a time, and a `Scene` can only be on one `Window` at a time. Setting a `Scene` on a different `Window` will cause the old `Window` to lose the reference before the new one gains it. You may swap `Scene`s on a `Window` at any time, even if it is an instance of `Stage` and with `fullScreen` set to `true`.

    If the width or height of this `Window` have never been set by the application, setting the scene will cause this `Window` to take its width or height from that scene. Resizing this `Window` by end user does not count as setting the width or height by the application.

    An `IllegalStateException` is thrown if this property is set on a thread other than the JavaFX Application Thread.

    Default value:
      `null`
    See Also:
      - `getScene()`
      - `setScene(Scene)`
      - `sceneProperty()`

  - ### opacity

    public final DoubleProperty opacityProperty
    Defines the opacity of the `Window` as a value between 0.0 and 1.0. The opacity is reflected across the `Window`, its `Decoration` and its `Scene` content. On a JavaFX runtime platform that does not support opacity, assigning a value to this variable will have no visible difference. A `Window` with 0% opacity is fully translucent. Typically, a `Window` with 0% opacity will not receive any mouse events.
    Default value:
      1.0
    See Also:
      - `getOpacity()`
      - `setOpacity(double)`
      - `opacityProperty()`

  - ### onCloseRequest

    public final ObjectProperty<EventHandler<WindowEvent>> onCloseRequestProperty
    Called when there is an external request to close this `Window`. The installed event handler can prevent window closing by consuming the received event.
    See Also:
      - `getOnCloseRequest()`
      - `setOnCloseRequest(EventHandler)`
      - `onCloseRequestProperty()`

  - ### onShowing

    public final ObjectProperty<EventHandler<WindowEvent>> onShowingProperty
    Called just prior to the Window being shown.
    See Also:
      - `getOnShowing()`
      - `setOnShowing(EventHandler)`
      - `onShowingProperty()`

  - ### onShown

    public final ObjectProperty<EventHandler<WindowEvent>> onShownProperty
    Called just after the Window is shown.
    See Also:
      - `getOnShown()`
      - `setOnShown(EventHandler)`
      - `onShownProperty()`

  - ### onHiding

    public final ObjectProperty<EventHandler<WindowEvent>> onHidingProperty
    Called just prior to the Window being hidden.
    See Also:
      - `getOnHiding()`
      - `setOnHiding(EventHandler)`
      - `onHidingProperty()`

  - ### onHidden

    public final ObjectProperty<EventHandler<WindowEvent>> onHiddenProperty
    Called just after the Window has been hidden. When the `Window` is hidden, this event handler is invoked allowing the developer to clean up resources or perform other tasks when the `Window` is closed.
    See Also:
      - `getOnHidden()`
      - `setOnHidden(EventHandler)`
      - `onHiddenProperty()`

  - ### showing

    public final ReadOnlyBooleanProperty showingProperty
    Whether or not this `Window` is showing (that is, open on the user's system). The Window might be "showing", yet the user might not be able to see it due to the Window being rendered behind another Window or due to the Window being positioned off the monitor.
    Default value:
      false
    See Also:
      - `isShowing()`
      - `showingProperty()`

  - ### eventDispatcher

    public final ObjectProperty<EventDispatcher> eventDispatcherProperty
    Specifies the event dispatcher for this node. The default event dispatcher sends the received events to the registered event handlers and filters. When replacing the value with a new `EventDispatcher`, the new dispatcher should forward events to the replaced dispatcher to maintain the node's default event handling behavior.
    See Also:
      - `getEventDispatcher()`
      - `setEventDispatcher(EventDispatcher)`
      - `eventDispatcherProperty()`

- ## Constructor Details

  - ### Window

    protected Window()
    Constructor for subclasses to call.

- ## Method Details

  - ### getWindows

    public static ObservableList<Window> getWindows()
    Returns a list containing a reference to the currently showing JavaFX windows. The list is unmodifiable - attempting to modify this list will result in an `UnsupportedOperationException` being thrown at runtime.
    Returns:
      A list containing all windows that are currently showing.
    Since:
      9

  - ### sizeToScene

    public void sizeToScene()
    Set the width and height of this Window to match the size of the content of this Window's Scene.

    This request might be ignored if the Window is not allowed to do so, for example a `Stage` may be `maximized` or in `fullScreen` and therefore does not allow this request. If that is the case, this request is remembered and reapplied later when allowed.

  - ### centerOnScreen

    public void centerOnScreen()
    Sets x and y properties on this Window so that it is centered on the current screen. The current screen is determined from the intersection of current window bounds and visual bounds of all screens.

  - ### getOutputScaleX

    public final double getOutputScaleX()
    Gets the value of the `outputScaleX` property.
    Property description:
      The scale that the `Window` will apply to horizontal scene coordinates in all stages of rendering and compositing the output to the screen or other destination device. This property is updated asynchronously by the system at various times including:
      - Window creation
      - At some point during moving a window to a new `Screen` which may be before or after the `Screen` property is updated.
      - In response to a change in user preferences for output scaling.
    Returns:
      the value of the `outputScaleX` property
    Since:
      9
    See Also:
      - `outputScaleXProperty()`

  - ### outputScaleXProperty

    public final ReadOnlyDoubleProperty outputScaleXProperty()
    The scale that the `Window` will apply to horizontal scene coordinates in all stages of rendering and compositing the output to the screen or other destination device. This property is updated asynchronously by the system at various times including:
    - Window creation
    - At some point during moving a window to a new `Screen` which may be before or after the `Screen` property is updated.
    - In response to a change in user preferences for output scaling.
    Returns:
      the `outputScaleX` property
    Since:
      9
    See Also:
      - `getOutputScaleX()`

  - ### getOutputScaleY

    public final double getOutputScaleY()
    Gets the value of the `outputScaleY` property.
    Property description:
      The scale that the `Window` will apply to vertical scene coordinates in all stages of rendering and compositing the output to the screen or other destination device. This property is updated asynchronously by the system at various times including:
      - Window creation
      - At some point during moving a window to a new `Screen` which may be before or after the `Screen` property is updated.
      - In response to a change in user preferences for output scaling.
    Returns:
      the value of the `outputScaleY` property
    Since:
      9
    See Also:
      - `outputScaleYProperty()`

  - ### outputScaleYProperty

    public final ReadOnlyDoubleProperty outputScaleYProperty()
    The scale that the `Window` will apply to vertical scene coordinates in all stages of rendering and compositing the output to the screen or other destination device. This property is updated asynchronously by the system at various times including:
    - Window creation
    - At some point during moving a window to a new `Screen` which may be before or after the `Screen` property is updated.
    - In response to a change in user preferences for output scaling.
    Returns:
      the `outputScaleY` property
    Since:
      9
    See Also:
      - `getOutputScaleY()`

  - ### setForceIntegerRenderScale

    public final void setForceIntegerRenderScale(boolean forced)
    Sets the value of the `forceIntegerRenderScale` property.
    Property description:
      Boolean property that controls whether only integer render scales are set by default by the system when there is a change in the associated output scale. The `renderScale` properties will be updated directly and simultaneously with any changes in the associated `outputScale` properties, but the values can be overridden by subsequent calls to the `setRenderScale` setters or through appropriate use of binding. This property will not prevent setting non-integer scales directly using the `renderScale` property object or the convenience setter method.
    Default value:
      false
    Parameters:
      `forced` - the value for the `forceIntegerRenderScale` property
    Since:
      9
    See Also:
      - `isForceIntegerRenderScale()`
      - `forceIntegerRenderScaleProperty()`

  - ### isForceIntegerRenderScale

    public final boolean isForceIntegerRenderScale()
    Gets the value of the `forceIntegerRenderScale` property.
    Property description:
      Boolean property that controls whether only integer render scales are set by default by the system when there is a change in the associated output scale. The `renderScale` properties will be updated directly and simultaneously with any changes in the associated `outputScale` properties, but the values can be overridden by subsequent calls to the `setRenderScale` setters or through appropriate use of binding. This property will not prevent setting non-integer scales directly using the `renderScale` property object or the convenience setter method.
    Default value:
      false
    Returns:
      the value of the `forceIntegerRenderScale` property
    Since:
      9
    See Also:
      - `setForceIntegerRenderScale(boolean)`
      - `forceIntegerRenderScaleProperty()`

  - ### forceIntegerRenderScaleProperty

    public final BooleanProperty forceIntegerRenderScaleProperty()
    Boolean property that controls whether only integer render scales are set by default by the system when there is a change in the associated output scale. The `renderScale` properties will be updated directly and simultaneously with any changes in the associated `outputScale` properties, but the values can be overridden by subsequent calls to the `setRenderScale` setters or through appropriate use of binding. This property will not prevent setting non-integer scales directly using the `renderScale` property object or the convenience setter method.
    Default value:
      false
    Returns:
      the `forceIntegerRenderScale` property
    Since:
      9
    See Also:
      - `isForceIntegerRenderScale()`
      - `setForceIntegerRenderScale(boolean)`

  - ### setRenderScaleX

    public final void setRenderScaleX(double scale)
    Sets the value of the `renderScaleX` property.
    Property description:
      The horizontal scale that the `Window` will use when rendering its `Scene` to the rendering buffer. This property is automatically updated whenever there is a change in the `outputScaleX` property and can be overridden either by calling `setRenderScaleX()` in response to a listener on the `outputScaleX` property or by binding it appropriately.
    Default value:
      outputScaleX
    Parameters:
      `scale` - the value for the `renderScaleX` property
    Since:
      9
    See Also:
      - `getRenderScaleX()`
      - `renderScaleXProperty()`

  - ### getRenderScaleX

    public final double getRenderScaleX()
    Gets the value of the `renderScaleX` property.
    Property description:
      The horizontal scale that the `Window` will use when rendering its `Scene` to the rendering buffer. This property is automatically updated whenever there is a change in the `outputScaleX` property and can be overridden either by calling `setRenderScaleX()` in response to a listener on the `outputScaleX` property or by binding it appropriately.
    Default value:
      outputScaleX
    Returns:
      the value of the `renderScaleX` property
    Since:
      9
    See Also:
      - `setRenderScaleX(double)`
      - `renderScaleXProperty()`

  - ### renderScaleXProperty

    public final DoubleProperty renderScaleXProperty()
    The horizontal scale that the `Window` will use when rendering its `Scene` to the rendering buffer. This property is automatically updated whenever there is a change in the `outputScaleX` property and can be overridden either by calling `setRenderScaleX()` in response to a listener on the `outputScaleX` property or by binding it appropriately.
    Default value:
      outputScaleX
    Returns:
      the `renderScaleX` property
    Since:
      9
    See Also:
      - `getRenderScaleX()`
      - `setRenderScaleX(double)`

  - ### setRenderScaleY

    public final void setRenderScaleY(double scale)
    Sets the value of the `renderScaleY` property.
    Property description:
      The vertical scale that the `Window` will use when rendering its `Scene` to the rendering buffer. This property is automatically updated whenever there is a change in the `outputScaleY` property and can be overridden either by calling `setRenderScaleY()` in response to a listener on the `outputScaleY` property or by binding it appropriately.
    Default value:
      outputScaleY
    Parameters:
      `scale` - the value for the `renderScaleY` property
    Since:
      9
    See Also:
      - `getRenderScaleY()`
      - `renderScaleYProperty()`

  - ### getRenderScaleY

    public final double getRenderScaleY()
    Gets the value of the `renderScaleY` property.
    Property description:
      The vertical scale that the `Window` will use when rendering its `Scene` to the rendering buffer. This property is automatically updated whenever there is a change in the `outputScaleY` property and can be overridden either by calling `setRenderScaleY()` in response to a listener on the `outputScaleY` property or by binding it appropriately.
    Default value:
      outputScaleY
    Returns:
      the value of the `renderScaleY` property
    Since:
      9
    See Also:
      - `setRenderScaleY(double)`
      - `renderScaleYProperty()`

  - ### renderScaleYProperty

    public final DoubleProperty renderScaleYProperty()
    The vertical scale that the `Window` will use when rendering its `Scene` to the rendering buffer. This property is automatically updated whenever there is a change in the `outputScaleY` property and can be overridden either by calling `setRenderScaleY()` in response to a listener on the `outputScaleY` property or by binding it appropriately.
    Default value:
      outputScaleY
    Returns:
      the `renderScaleY` property
    Since:
      9
    See Also:
      - `getRenderScaleY()`
      - `setRenderScaleY(double)`

  - ### setX

    public final void setX(double value)
    Sets the value of the `x` property.
    Property description:
      The horizontal location of this `Window` on the screen. Changing this attribute will move the `Window` horizontally. If this `Window` is an instance of `Stage`, changing this attribute will not visually affect the `Window` while `fullScreen` is true, but will be honored by the `Window` once `fullScreen` becomes false.

      This property is read-only because it can be changed externally by the underlying platform. Further, setting this property might be ignored on some platforms.

    Parameters:
      `value` - the value for the `x` property
    See Also:
      - `getX()`
      - `xProperty()`

  - ### getX

    public final double getX()
    Gets the value of the `x` property.
    Property description:
      The horizontal location of this `Window` on the screen. Changing this attribute will move the `Window` horizontally. If this `Window` is an instance of `Stage`, changing this attribute will not visually affect the `Window` while `fullScreen` is true, but will be honored by the `Window` once `fullScreen` becomes false.

      This property is read-only because it can be changed externally by the underlying platform. Further, setting this property might be ignored on some platforms.

    Returns:
      the value of the `x` property
    See Also:
      - `setX(double)`
      - `xProperty()`

  - ### xProperty

    public final ReadOnlyDoubleProperty xProperty()
    The horizontal location of this `Window` on the screen. Changing this attribute will move the `Window` horizontally. If this `Window` is an instance of `Stage`, changing this attribute will not visually affect the `Window` while `fullScreen` is true, but will be honored by the `Window` once `fullScreen` becomes false.

    This property is read-only because it can be changed externally by the underlying platform. Further, setting this property might be ignored on some platforms.

    Returns:
      the `x` property
    See Also:
      - `getX()`
      - `setX(double)`

  - ### setY

    public final void setY(double value)
    Sets the value of the `y` property.
    Property description:
      The vertical location of this `Window` on the screen. Changing this attribute will move the `Window` vertically. If this `Window` is an instance of `Stage`, changing this attribute will not visually affect the `Window` while `fullScreen` is true, but will be honored by the `Window` once `fullScreen` becomes false.

      This property is read-only because it can be changed externally by the underlying platform. Further, setting this property might be ignored on some platforms.

    Parameters:
      `value` - the value for the `y` property
    See Also:
      - `getY()`
      - `yProperty()`

  - ### getY

    public final double getY()
    Gets the value of the `y` property.
    Property description:
      The vertical location of this `Window` on the screen. Changing this attribute will move the `Window` vertically. If this `Window` is an instance of `Stage`, changing this attribute will not visually affect the `Window` while `fullScreen` is true, but will be honored by the `Window` once `fullScreen` becomes false.

      This property is read-only because it can be changed externally by the underlying platform. Further, setting this property might be ignored on some platforms.

    Returns:
      the value of the `y` property
    See Also:
      - `setY(double)`
      - `yProperty()`

  - ### yProperty

    public final ReadOnlyDoubleProperty yProperty()
    The vertical location of this `Window` on the screen. Changing this attribute will move the `Window` vertically. If this `Window` is an instance of `Stage`, changing this attribute will not visually affect the `Window` while `fullScreen` is true, but will be honored by the `Window` once `fullScreen` becomes false.

    This property is read-only because it can be changed externally by the underlying platform. Further, setting this property might be ignored on some platforms.

    Returns:
      the `y` property
    See Also:
      - `getY()`
      - `setY(double)`

  - ### setWidth

    public final void setWidth(double value)
    Sets the value of the `width` property.
    Property description:
      The width of this `Window`. Changing this attribute will narrow or widen the width of the `Window`. This value includes any and all decorations which may be added by the Operating System such as resizable frame handles. Typical applications will set the `Scene` width instead. This `Window` will take its width from the scene if it has never been set by the application. Resizing the window by end user does not count as a setting the width by the application. If this `Window` is an instance of `Stage`, changing this attribute will not visually affect the `Window` while `fullScreen` is true, but will be honored by the `Window` once `fullScreen` becomes false.

      This property is read-only because it can be changed externally by the underlying platform. Further, setting this property might be ignored on some platforms.

    Parameters:
      `value` - the value for the `width` property
    See Also:
      - `getWidth()`
      - `widthProperty()`

  - ### getWidth

    public final double getWidth()
    Gets the value of the `width` property.
    Property description:
      The width of this `Window`. Changing this attribute will narrow or widen the width of the `Window`. This value includes any and all decorations which may be added by the Operating System such as resizable frame handles. Typical applications will set the `Scene` width instead. This `Window` will take its width from the scene if it has never been set by the application. Resizing the window by end user does not count as a setting the width by the application. If this `Window` is an instance of `Stage`, changing this attribute will not visually affect the `Window` while `fullScreen` is true, but will be honored by the `Window` once `fullScreen` becomes false.

      This property is read-only because it can be changed externally by the underlying platform. Further, setting this property might be ignored on some platforms.

    Returns:
      the value of the `width` property
    See Also:
      - `setWidth(double)`
      - `widthProperty()`

  - ### widthProperty

    public final ReadOnlyDoubleProperty widthProperty()
    The width of this `Window`. Changing this attribute will narrow or widen the width of the `Window`. This value includes any and all decorations which may be added by the Operating System such as resizable frame handles. Typical applications will set the `Scene` width instead. This `Window` will take its width from the scene if it has never been set by the application. Resizing the window by end user does not count as a setting the width by the application. If this `Window` is an instance of `Stage`, changing this attribute will not visually affect the `Window` while `fullScreen` is true, but will be honored by the `Window` once `fullScreen` becomes false.

    This property is read-only because it can be changed externally by the underlying platform. Further, setting this property might be ignored on some platforms.

    Returns:
      the `width` property
    See Also:
      - `getWidth()`
      - `setWidth(double)`

  - ### setHeight

    public final void setHeight(double value)
    Sets the value of the `height` property.
    Property description:
      The height of this `Window`. Changing this attribute will shrink or heighten the height of the `Window`. This value includes any and all decorations which may be added by the Operating System such as the title bar. Typical applications will set the `Scene` height instead. This window will take its height from the scene if it has never been set by the application. Resizing this window by end user does not count as a setting the height by the application. If this `Window` is an instance of `Stage`, changing this attribute will not visually affect the `Window` while `fullScreen` is true, but will be honored by the `Window` once `fullScreen` becomes false.

      This property is read-only because it can be changed externally by the underlying platform. Further, setting this property might be ignored on some platforms.

    Parameters:
      `value` - the value for the `height` property
    See Also:
      - `getHeight()`
      - `heightProperty()`

  - ### getHeight

    public final double getHeight()
    Gets the value of the `height` property.
    Property description:
      The height of this `Window`. Changing this attribute will shrink or heighten the height of the `Window`. This value includes any and all decorations which may be added by the Operating System such as the title bar. Typical applications will set the `Scene` height instead. This window will take its height from the scene if it has never been set by the application. Resizing this window by end user does not count as a setting the height by the application. If this `Window` is an instance of `Stage`, changing this attribute will not visually affect the `Window` while `fullScreen` is true, but will be honored by the `Window` once `fullScreen` becomes false.

      This property is read-only because it can be changed externally by the underlying platform. Further, setting this property might be ignored on some platforms.

    Returns:
      the value of the `height` property
    See Also:
      - `setHeight(double)`
      - `heightProperty()`

  - ### heightProperty

    public final ReadOnlyDoubleProperty heightProperty()
    The height of this `Window`. Changing this attribute will shrink or heighten the height of the `Window`. This value includes any and all decorations which may be added by the Operating System such as the title bar. Typical applications will set the `Scene` height instead. This window will take its height from the scene if it has never been set by the application. Resizing this window by end user does not count as a setting the height by the application. If this `Window` is an instance of `Stage`, changing this attribute will not visually affect the `Window` while `fullScreen` is true, but will be honored by the `Window` once `fullScreen` becomes false.

    This property is read-only because it can be changed externally by the underlying platform. Further, setting this property might be ignored on some platforms.

    Returns:
      the `height` property
    See Also:
      - `getHeight()`
      - `setHeight(double)`

  - ### requestFocus

    public final void requestFocus()
    Requests that this `Window` get the input focus.

  - ### isFocused

    public final boolean isFocused()
    Gets the value of the `focused` property.
    Property description:
      Whether or not this `Window` has the keyboard or input focus.
    Returns:
      the value of the `focused` property
    See Also:
      - `focusedProperty()`

  - ### focusedProperty

    public final ReadOnlyBooleanProperty focusedProperty()
    Whether or not this `Window` has the keyboard or input focus.
    Returns:
      the `focused` property
    See Also:
      - `isFocused()`

  - ### getProperties

    public final ObservableMap<Object,Object> getProperties()
    Returns an observable map of properties on this node for use primarily by application developers.
    Returns:
      an observable map of properties on this node for use primarily by application developers
    Since:
      JavaFX 8u40

  - ### hasProperties

    public boolean hasProperties()
    Tests if Window has properties.
    Returns:
      true if node has properties.
    Since:
      JavaFX 8u40

  - ### setUserData

    public void setUserData(Object value)
    Convenience method for setting a single Object property that can be retrieved at a later date. This is functionally equivalent to calling the getProperties().put(Object key, Object value) method. This can later be retrieved by calling `getUserData()`.
    Parameters:
      `value` - The value to be stored - this can later be retrieved by calling `getUserData()`.
    Since:
      JavaFX 8u40

  - ### getUserData

    public Object getUserData()
    Returns a previously set Object property, or null if no such property has been set using the `setUserData(java.lang.Object)` method.
    Returns:
      The Object that was previously set, or null if no property has been set or if null was set.
    Since:
      JavaFX 8u40

  - ### setScene

    protected void setScene(Scene value)
    Sets the value of the `scene` property.

    The `Scene` to be rendered on this `Window`. There can only be one `Scene` on the `Window` at a time, and a `Scene` can only be on one `Window` at a time. Setting a `Scene` on a different `Window` will cause the old `Window` to lose the reference before the new one gains it. You may swap `Scene`s on a `Window` at any time, even if it is an instance of `Stage` and with `fullScreen` set to `true`.

    If the width or height of this `Window` have never been set by the application, setting the scene will cause this `Window` to take its width or height from that scene. Resizing this `Window` by end user does not count as setting the width or height by the application.

    Default value:
      `null`
    Parameters:
      `value` - the value for the `scene` property
    Throws:
      `IllegalStateException` - if this property is set on a thread other than the JavaFX Application Thread.
    See Also:
      - `getScene()`
      - `sceneProperty()`

  - ### getScene

    public final Scene getScene()
    Gets the value of the `scene` property.
    Property description:
      The `Scene` to be rendered on this `Window`. There can only be one `Scene` on the `Window` at a time, and a `Scene` can only be on one `Window` at a time. Setting a `Scene` on a different `Window` will cause the old `Window` to lose the reference before the new one gains it. You may swap `Scene`s on a `Window` at any time, even if it is an instance of `Stage` and with `fullScreen` set to `true`.

      If the width or height of this `Window` have never been set by the application, setting the scene will cause this `Window` to take its width or height from that scene. Resizing this `Window` by end user does not count as setting the width or height by the application.

      An `IllegalStateException` is thrown if this property is set on a thread other than the JavaFX Application Thread.

    Default value:
      `null`
    Returns:
      the value of the `scene` property
    See Also:
      - `setScene(Scene)`
      - `sceneProperty()`

  - ### sceneProperty

    public final ReadOnlyObjectProperty<Scene> sceneProperty()
    The `Scene` to be rendered on this `Window`. There can only be one `Scene` on the `Window` at a time, and a `Scene` can only be on one `Window` at a time. Setting a `Scene` on a different `Window` will cause the old `Window` to lose the reference before the new one gains it. You may swap `Scene`s on a `Window` at any time, even if it is an instance of `Stage` and with `fullScreen` set to `true`.

    If the width or height of this `Window` have never been set by the application, setting the scene will cause this `Window` to take its width or height from that scene. Resizing this `Window` by end user does not count as setting the width or height by the application.

    An `IllegalStateException` is thrown if this property is set on a thread other than the JavaFX Application Thread.

    Default value:
      `null`
    Returns:
      the `scene` property
    See Also:
      - `getScene()`
      - `setScene(Scene)`

  - ### setOpacity

    public final void setOpacity(double value)
    Sets the value of the `opacity` property.
    Property description:
      Defines the opacity of the `Window` as a value between 0.0 and 1.0. The opacity is reflected across the `Window`, its `Decoration` and its `Scene` content. On a JavaFX runtime platform that does not support opacity, assigning a value to this variable will have no visible difference. A `Window` with 0% opacity is fully translucent. Typically, a `Window` with 0% opacity will not receive any mouse events.
    Default value:
      1.0
    Parameters:
      `value` - the value for the `opacity` property
    See Also:
      - `getOpacity()`
      - `opacityProperty()`

  - ### getOpacity

    public final double getOpacity()
    Gets the value of the `opacity` property.
    Property description:
      Defines the opacity of the `Window` as a value between 0.0 and 1.0. The opacity is reflected across the `Window`, its `Decoration` and its `Scene` content. On a JavaFX runtime platform that does not support opacity, assigning a value to this variable will have no visible difference. A `Window` with 0% opacity is fully translucent. Typically, a `Window` with 0% opacity will not receive any mouse events.
    Default value:
      1.0
    Returns:
      the value of the `opacity` property
    See Also:
      - `setOpacity(double)`
      - `opacityProperty()`

  - ### opacityProperty

    public final DoubleProperty opacityProperty()
    Defines the opacity of the `Window` as a value between 0.0 and 1.0. The opacity is reflected across the `Window`, its `Decoration` and its `Scene` content. On a JavaFX runtime platform that does not support opacity, assigning a value to this variable will have no visible difference. A `Window` with 0% opacity is fully translucent. Typically, a `Window` with 0% opacity will not receive any mouse events.
    Default value:
      1.0
    Returns:
      the `opacity` property
    See Also:
      - `getOpacity()`
      - `setOpacity(double)`

  - ### setOnCloseRequest

    public final void setOnCloseRequest(EventHandler<WindowEvent> value)
    Sets the value of the `onCloseRequest` property.
    Property description:
      Called when there is an external request to close this `Window`. The installed event handler can prevent window closing by consuming the received event.
    Parameters:
      `value` - the value for the `onCloseRequest` property
    See Also:
      - `getOnCloseRequest()`
      - `onCloseRequestProperty()`

  - ### getOnCloseRequest

    public final EventHandler<WindowEvent> getOnCloseRequest()
    Gets the value of the `onCloseRequest` property.
    Property description:
      Called when there is an external request to close this `Window`. The installed event handler can prevent window closing by consuming the received event.
    Returns:
      the value of the `onCloseRequest` property
    See Also:
      - `setOnCloseRequest(EventHandler)`
      - `onCloseRequestProperty()`

  - ### onCloseRequestProperty

    public final ObjectProperty<EventHandler<WindowEvent>> onCloseRequestProperty()
    Called when there is an external request to close this `Window`. The installed event handler can prevent window closing by consuming the received event.
    Returns:
      the `onCloseRequest` property
    See Also:
      - `getOnCloseRequest()`
      - `setOnCloseRequest(EventHandler)`

  - ### setOnShowing

    public final void setOnShowing(EventHandler<WindowEvent> value)
    Sets the value of the `onShowing` property.
    Property description:
      Called just prior to the Window being shown.
    Parameters:
      `value` - the value for the `onShowing` property
    See Also:
      - `getOnShowing()`
      - `onShowingProperty()`

  - ### getOnShowing

    public final EventHandler<WindowEvent> getOnShowing()
    Gets the value of the `onShowing` property.
    Property description:
      Called just prior to the Window being shown.
    Returns:
      the value of the `onShowing` property
    See Also:
      - `setOnShowing(EventHandler)`
      - `onShowingProperty()`

  - ### onShowingProperty

    public final ObjectProperty<EventHandler<WindowEvent>> onShowingProperty()
    Called just prior to the Window being shown.
    Returns:
      the `onShowing` property
    See Also:
      - `getOnShowing()`
      - `setOnShowing(EventHandler)`

  - ### setOnShown

    public final void setOnShown(EventHandler<WindowEvent> value)
    Sets the value of the `onShown` property.
    Property description:
      Called just after the Window is shown.
    Parameters:
      `value` - the value for the `onShown` property
    See Also:
      - `getOnShown()`
      - `onShownProperty()`

  - ### getOnShown

    public final EventHandler<WindowEvent> getOnShown()
    Gets the value of the `onShown` property.
    Property description:
      Called just after the Window is shown.
    Returns:
      the value of the `onShown` property
    See Also:
      - `setOnShown(EventHandler)`
      - `onShownProperty()`

  - ### onShownProperty

    public final ObjectProperty<EventHandler<WindowEvent>> onShownProperty()
    Called just after the Window is shown.
    Returns:
      the `onShown` property
    See Also:
      - `getOnShown()`
      - `setOnShown(EventHandler)`

  - ### setOnHiding

    public final void setOnHiding(EventHandler<WindowEvent> value)
    Sets the value of the `onHiding` property.
    Property description:
      Called just prior to the Window being hidden.
    Parameters:
      `value` - the value for the `onHiding` property
    See Also:
      - `getOnHiding()`
      - `onHidingProperty()`

  - ### getOnHiding

    public final EventHandler<WindowEvent> getOnHiding()
    Gets the value of the `onHiding` property.
    Property description:
      Called just prior to the Window being hidden.
    Returns:
      the value of the `onHiding` property
    See Also:
      - `setOnHiding(EventHandler)`
      - `onHidingProperty()`

  - ### onHidingProperty

    public final ObjectProperty<EventHandler<WindowEvent>> onHidingProperty()
    Called just prior to the Window being hidden.
    Returns:
      the `onHiding` property
    See Also:
      - `getOnHiding()`
      - `setOnHiding(EventHandler)`

  - ### setOnHidden

    public final void setOnHidden(EventHandler<WindowEvent> value)
    Sets the value of the `onHidden` property.
    Property description:
      Called just after the Window has been hidden. When the `Window` is hidden, this event handler is invoked allowing the developer to clean up resources or perform other tasks when the `Window` is closed.
    Parameters:
      `value` - the value for the `onHidden` property
    See Also:
      - `getOnHidden()`
      - `onHiddenProperty()`

  - ### getOnHidden

    public final EventHandler<WindowEvent> getOnHidden()
    Gets the value of the `onHidden` property.
    Property description:
      Called just after the Window has been hidden. When the `Window` is hidden, this event handler is invoked allowing the developer to clean up resources or perform other tasks when the `Window` is closed.
    Returns:
      the value of the `onHidden` property
    See Also:
      - `setOnHidden(EventHandler)`
      - `onHiddenProperty()`

  - ### onHiddenProperty

    public final ObjectProperty<EventHandler<WindowEvent>> onHiddenProperty()
    Called just after the Window has been hidden. When the `Window` is hidden, this event handler is invoked allowing the developer to clean up resources or perform other tasks when the `Window` is closed.
    Returns:
      the `onHidden` property
    See Also:
      - `getOnHidden()`
      - `setOnHidden(EventHandler)`

  - ### isShowing

    public final boolean isShowing()
    Gets the value of the `showing` property.
    Property description:
      Whether or not this `Window` is showing (that is, open on the user's system). The Window might be "showing", yet the user might not be able to see it due to the Window being rendered behind another Window or due to the Window being positioned off the monitor.
    Default value:
      false
    Returns:
      the value of the `showing` property
    See Also:
      - `showingProperty()`

  - ### showingProperty

    public final ReadOnlyBooleanProperty showingProperty()
    Whether or not this `Window` is showing (that is, open on the user's system). The Window might be "showing", yet the user might not be able to see it due to the Window being rendered behind another Window or due to the Window being positioned off the monitor.
    Default value:
      false
    Returns:
      the `showing` property
    See Also:
      - `isShowing()`

  - ### show

    protected void show()
    Attempts to show this Window by setting visibility to true
    Throws:
      `IllegalStateException` - if this method is called on a thread other than the JavaFX Application Thread.

  - ### hide

    public void hide()
    Attempts to hide this Window by setting the visibility to false.
    Throws:
      `IllegalStateException` - if this method is called on a thread other than the JavaFX Application Thread.

  - ### setEventDispatcher

    public final void setEventDispatcher(EventDispatcher value)
    Sets the value of the `eventDispatcher` property.
    Property description:
      Specifies the event dispatcher for this node. The default event dispatcher sends the received events to the registered event handlers and filters. When replacing the value with a new `EventDispatcher`, the new dispatcher should forward events to the replaced dispatcher to maintain the node's default event handling behavior.
    Parameters:
      `value` - the value for the `eventDispatcher` property
    See Also:
      - `getEventDispatcher()`
      - `eventDispatcherProperty()`

  - ### getEventDispatcher

    public final EventDispatcher getEventDispatcher()
    Gets the value of the `eventDispatcher` property.
    Property description:
      Specifies the event dispatcher for this node. The default event dispatcher sends the received events to the registered event handlers and filters. When replacing the value with a new `EventDispatcher`, the new dispatcher should forward events to the replaced dispatcher to maintain the node's default event handling behavior.
    Returns:
      the value of the `eventDispatcher` property
    See Also:
      - `setEventDispatcher(EventDispatcher)`
      - `eventDispatcherProperty()`

  - ### eventDispatcherProperty

    public final ObjectProperty<EventDispatcher> eventDispatcherProperty()
    Specifies the event dispatcher for this node. The default event dispatcher sends the received events to the registered event handlers and filters. When replacing the value with a new `EventDispatcher`, the new dispatcher should forward events to the replaced dispatcher to maintain the node's default event handling behavior.
    Returns:
      the `eventDispatcher` property
    See Also:
      - `getEventDispatcher()`
      - `setEventDispatcher(EventDispatcher)`

  - ### addEventHandler

    public final <T extends Event> void addEventHandler(EventType<T> eventType, EventHandler<? super T> eventHandler)
    Description copied from interface: `EventTarget`
    Registers an event handler for this target.

    The handler is called when the target receives an `Event` of the specified type during the bubbling phase of event delivery.

    Specified by:
      `addEventHandler` in interface `EventTarget`
    Type Parameters:
      `T` - the event class of the handler
    Parameters:
      `eventType` - the type of the events received by the handler
      `eventHandler` - the event handler

  - ### removeEventHandler

    public final <T extends Event> void removeEventHandler(EventType<T> eventType, EventHandler<? super T> eventHandler)
    Description copied from interface: `EventTarget`
    Unregisters a previously registered event handler from this target.

    Since it is possible to register a single `EventHandler` instance for different event types, the caller needs to specify the event type from which the handler should be unregistered.

    Specified by:
      `removeEventHandler` in interface `EventTarget`
    Type Parameters:
      `T` - the event class of the handler
    Parameters:
      `eventType` - the event type from which to unregister
      `eventHandler` - the event handler

  - ### addEventFilter

    public final <T extends Event> void addEventFilter(EventType<T> eventType, EventHandler<? super T> eventFilter)
    Description copied from interface: `EventTarget`
    Registers an event filter for this target.

    The filter is called when the target receives an `Event` of the specified type during the capturing phase of event delivery.

    Specified by:
      `addEventFilter` in interface `EventTarget`
    Type Parameters:
      `T` - the event class of the filter
    Parameters:
      `eventType` - the type of the events received by the filter
      `eventFilter` - the event filter

  - ### removeEventFilter

    public final <T extends Event> void removeEventFilter(EventType<T> eventType, EventHandler<? super T> eventFilter)
    Description copied from interface: `EventTarget`
    Unregisters a previously registered event filter from this target.

    Since it is possible to register a single `EventHandler` instance for different event types, the caller needs to specify the event type from which the filter should be unregistered.

    Specified by:
      `removeEventFilter` in interface `EventTarget`
    Type Parameters:
      `T` - the event class of the filter
    Parameters:
      `eventType` - the event type from which to unregister
      `eventFilter` - the event filter

  - ### setEventHandler

    protected final <T extends Event> void setEventHandler(EventType<T> eventType, EventHandler<? super T> eventHandler)
    Sets the handler to use for this event type. There can only be one such handler specified at a time. This handler is guaranteed to be called first. This is used for registering the user-defined onFoo event handlers.
    Type Parameters:
      `T` - the specific event class of the handler
    Parameters:
      `eventType` - the event type to associate with the given eventHandler
      `eventHandler` - the handler to register, or null to unregister
    Throws:
      `NullPointerException` - if the event type is null

  - ### fireEvent

    public final void fireEvent(Event event)
    Fires the specified event.

    This method must be called on the FX user thread.

    Parameters:
      `event` - the event to fire

  - ### buildEventDispatchChain

    public EventDispatchChain buildEventDispatchChain(EventDispatchChain tail)
    Description copied from interface: `EventTarget`
    Construct an event dispatch chain for this target. The event dispatch chain contains event dispatchers which might be interested in processing of events targeted at this `EventTarget`. This event target is not automatically added to the chain, so if it wants to process events, it needs to add an `EventDispatcher` for itself to the chain.

    In the case the event target is part of some hierarchy, the chain for it is usually built from event dispatchers collected from the root of the hierarchy to the event target.

    The event dispatch chain is constructed by modifications to the provided initial event dispatch chain. The returned chain should have the initial chain at its end so the dispatchers should be prepended to the initial chain.

    The caller shouldn't assume that the initial chain remains unchanged nor that the returned value will reference a different chain.

    Specified by:
      `buildEventDispatchChain` in interface `EventTarget`
    Parameters:
      `tail` - the initial chain to build from
    Returns:
      the resulting event dispatch chain for this target