Dialog (JavaFX 13)

Module javafx.controls
Package javafx.scene.control

## Class Dialog<R>

- java.lang.Object
- - javafx.scene.control.Dialog<R>

- Type Parameters:
    `R` - The return type of the dialog, via the `result` property.
  All Implemented Interfaces:
    `EventTarget`
  Direct Known Subclasses:
    `Alert`, `ChoiceDialog`, `TextInputDialog`

      public class Dialog<R>
      extends Object
      implements EventTarget

  A Dialog in JavaFX wraps a `DialogPane` and provides the necessary API to present it to end users. In JavaFX 8u40, this essentially means that the `DialogPane` is shown to users inside a `Stage`, but future releases may offer alternative options (such as 'lightweight' or 'internal' dialogs). This API therefore is intentionally ignorant of the underlying implementation, and attempts to present a common API for all possible implementations.

  The Dialog class has a single generic type, R, which is used to represent the type of the `result` property (and also, how to convert from `ButtonType` to R, through the use of the `result converter` `Callback`).

  Critical note: It is critical that all developers who choose to create their own dialogs by extending the Dialog class understand the importance of the `result converter` property. A result converter must always be set, whenever the R type is not `Void` or `ButtonType`. If this is not heeded, developers will find that they get ClassCastExceptions in their code, for failure to convert from `ButtonType` via the `result converter`.

  It is likely that most developers would be better served using either the `Alert` class (for pre-defined, notification-style alerts), or either of the two pre-built dialogs (`TextInputDialog` and `ChoiceDialog`), depending on their needs.

  Once a Dialog is instantiated, the next step is to configure it. Almost all properties on Dialog are not related to the content of the Dialog, the only exceptions are `contentTextProperty()`, `headerTextProperty()`, and `graphicProperty()`, and these properties are simply forwarding API onto the respective properties on the `DialogPane` stored in the `dialog pane` property. These three properties are forwarded from DialogPane for developer convenience. For developers wanting to configure their dialog, they will in many cases be required to use code along the lines of `dialog.getDialogPane().setExpandableContent(node)`.

  After configuring these properties, all that remains is to consider whether the buttons (created using `ButtonType` and the `DialogPane.createButton(ButtonType)` method) are fully configured. Developers will quickly find that the amount of configurability offered via the `ButtonType` class is minimal. This is intentional, but does not mean that developers can not modify the buttons created by the `ButtonType` that have been specified. To do this, developers simply call the `DialogPane.lookupButton(ButtonType)` method with the ButtonType (assuming it has already been set in the `DialogPane.getButtonTypes()` list. The returned Node is typically of type `Button`, but this depends on if the `DialogPane.createButton(ButtonType)` method has been overridden. A typical approach is therefore along the following lines:

       ButtonType loginButtonType = new ButtonType("Login", ButtonData.OK_DONE);
       Dialog<String> dialog = new Dialog<>();
       dialog.setTitle("Login Dialog");
       dialog.setContentText("Would you like to log in?");
       dialog.getDialogPane().getButtonTypes().add(loginButtonType);
       boolean disabled = false; // computed based on content of text fields, for example
       dialog.getDialogPane().lookupButton(loginButtonType).setDisable(disabled);
       dialog.showAndWait();

  Once a Dialog is instantiated and fully configured, the next step is to show it. More often than not, dialogs are shown in a modal and blocking fashion. 'Modal' means that the dialog prevents user interaction with the owning application whilst it is showing, and 'blocking' means that code execution stops at the point in which the dialog is shown. This means that you can show a dialog, await the user response, and then continue running the code that directly follows the show call, giving developers the ability to immediately deal with the user input from the dialog (if relevant).

  JavaFX dialogs are modal by default (you can change this via the `initModality(javafx.stage.Modality)` API). To specify whether you want blocking or non-blocking dialogs, developers simply choose to call `showAndWait()` or `show()` (respectively). By default most developers should choose to use `showAndWait()`, given the ease of coding in these situations. Shown below is three code snippets, showing three equally valid ways of showing a dialog:

  Option 1: The 'traditional' approach

       Optional<ButtonType> result = dialog.showAndWait();
       if (result.isPresent() && result.get() == ButtonType.OK) {
           formatSystem();
       }

  Option 2: The traditional + Optional approach

       dialog.showAndWait().ifPresent(response -> {
           if (response == ButtonType.OK) {
               formatSystem();
           }
       });

  Option 3: The fully lambda approach

       dialog.showAndWait()
             .filter(response -> response == ButtonType.OK)
             .ifPresent(response -> formatSystem());

  There is no better or worse option of the three listed above, so developers are encouraged to work to their own style preferences. The purpose of showing the above is to help introduce developers to the `Optional` API, which is new in Java 8 and may be foreign to many developers.

  ### Dialog Validation / Intercepting Button Actions

  In some circumstances it is desirable to prevent a dialog from closing until some aspect of the dialog becomes internally consistent (e.g. a form inside the dialog has all fields in a valid state). To do this, users of the dialogs API should become familiar with the `DialogPane.lookupButton(ButtonType)` method. By passing in a `ButtonType` (that has already been set in the `button types` list), users will be returned a Node that is typically of type `Button` (but this depends on if the `DialogPane.createButton(ButtonType)` method has been overridden). With this button, users may add an event filter that is called before the button does its usual event handling, and as such users may prevent the event handling by `consuming` the event. Here's a simplified example:

       final Button btOk = (Button) dlg.getDialogPane().lookupButton(ButtonType.OK);
       btOk.addEventFilter(ActionEvent.ACTION, event -> {
           if (!validateAndStore()) {
               event.consume();
           }
       });

  ### Dialog Closing Rules

  It is important to understand what happens when a Dialog is closed, and also how a Dialog can be closed, especially in abnormal closing situations (such as when the 'X' button is clicked in a dialogs title bar, or when operating system specific keyboard shortcuts (such as alt-F4 on Windows) are entered). Fortunately, the outcome is well-defined in these situations, and can be best summarised in the following bullet points:

  - JavaFX dialogs can only be closed 'abnormally' (as defined above) in two situations:
    1. When the dialog only has one button, or
    2. When the dialog has multiple buttons, as long as one of them meets one of the following requirements:
       1. The button has a `ButtonType` whose `ButtonBar.ButtonData` is of type `ButtonBar.ButtonData.CANCEL_CLOSE`.
       2. The button has a `ButtonType` whose `ButtonBar.ButtonData` returns true when `ButtonBar.ButtonData.isCancelButton()` is called.
  - In all other situations, the dialog will refuse to respond to all close requests, remaining open until the user clicks on one of the available buttons in the `DialogPane` area of the dialog.
  - If a dialog is closed abnormally, and if the dialog contains a button which meets one of the two criteria above, the dialog will attempt to set the `result` property to whatever value is returned from calling the `result converter` with the first matching `ButtonType`.
  - If for any reason the result converter returns null, or if the dialog is closed when only one non-cancel button is present, the `result` property will be null, and the `showAndWait()` method will return `Optional.empty()`. This later point means that, if you use either of option 2 or option 3 (as presented earlier in this class documentation), the `Optional.ifPresent(java.util.function.Consumer)` lambda will never be called, and code will continue executing as if the dialog had not returned any value at all.
  Since:
    JavaFX 8u40
  See Also:
    `Alert`, `TextInputDialog`, `ChoiceDialog`

- - ### Property Summary

    Properties
    Type | Property | Description
    --- | --- | ---
    `StringProperty` | `contentText` | A property representing the content text for the dialog pane.
    `ObjectProperty<DialogPane>` | `dialogPane` | The root node of the dialog, the `DialogPane` contains all visual elements shown in the dialog.
    `ObjectProperty<Node>` | `graphic` | The dialog graphic, presented either in the header, if one is showing, or to the left of the `content`.
    `StringProperty` | `headerText` | A property representing the header text for the dialog pane.
    `ReadOnlyDoubleProperty` | `height` | Property representing the height of the dialog.
    `ObjectProperty<EventHandler<DialogEvent>>` | `onCloseRequest` | Called when there is an external request to close this `Dialog`.
    `ObjectProperty<EventHandler<DialogEvent>>` | `onHidden` | Called just after the Dialog has been hidden.
    `ObjectProperty<EventHandler<DialogEvent>>` | `onHiding` | Called just prior to the Dialog being hidden.
    `ObjectProperty<EventHandler<DialogEvent>>` | `onShowing` | Called just prior to the Dialog being shown.
    `ObjectProperty<EventHandler<DialogEvent>>` | `onShown` | Called just after the Dialog is shown.
    `BooleanProperty` | `resizable` | Represents whether the dialog is resizable.
    `ObjectProperty<Callback<ButtonType,​R>>` | `resultConverter` | API to convert the `ButtonType` that the user clicked on into a result that can be returned via the `result` property.
    `ObjectProperty<R>` | `result` | A property representing what has been returned from the dialog.
    `ReadOnlyBooleanProperty` | `showing` | Represents whether the dialog is currently showing.
    `StringProperty` | `title` | Return the titleProperty of the dialog.
    `ReadOnlyDoubleProperty` | `width` | Property representing the width of the dialog.
    `ReadOnlyDoubleProperty` | `x` | The horizontal location of this `Dialog`.
    `ReadOnlyDoubleProperty` | `y` | The vertical location of this `Dialog`.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Dialog()` | Creates a dialog without a specified owner.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `EventDispatchChain` | `buildEventDispatchChain​(EventDispatchChain tail)` | Construct an event dispatch chain for this target.
    `void` | `close()` | Closes this `Dialog`.
    `StringProperty` | `contentTextProperty()` | A property representing the content text for the dialog pane.
    `ObjectProperty<DialogPane>` | `dialogPaneProperty()` | The root node of the dialog, the `DialogPane` contains all visual elements shown in the dialog.
    `String` | `getContentText()` | Returns the currently-set content text for this DialogPane.
    `DialogPane` | `getDialogPane()` | Gets the value of the property dialogPane.
    `Node` | `getGraphic()` | Gets the value of the property graphic.
    `String` | `getHeaderText()` | Returns the currently-set header text for this DialogPane.
    `double` | `getHeight()` | Returns the height of the dialog.
    `Modality` | `getModality()` | Retrieves the modality attribute for this dialog.
    `EventHandler<DialogEvent>` | `getOnCloseRequest()` | Gets the value of the property onCloseRequest.
    `EventHandler<DialogEvent>` | `getOnHidden()` | Gets the value of the property onHidden.
    `EventHandler<DialogEvent>` | `getOnHiding()` | Gets the value of the property onHiding.
    `EventHandler<DialogEvent>` | `getOnShowing()` | Gets the value of the property onShowing.
    `EventHandler<DialogEvent>` | `getOnShown()` | Gets the value of the property onShown.
    `Window` | `getOwner()` | Retrieves the owner Window for this dialog, or null for an unowned dialog.
    `R` | `getResult()` | Gets the value of the property result.
    `Callback<ButtonType,​R>` | `getResultConverter()` | Gets the value of the property resultConverter.
    `String` | `getTitle()` | Return the title of the dialog.
    `double` | `getWidth()` | Returns the width of the dialog.
    `double` | `getX()` | Gets the value of the property x.
    `double` | `getY()` | Gets the value of the property y.
    `ObjectProperty<Node>` | `graphicProperty()` | The dialog graphic, presented either in the header, if one is showing, or to the left of the `content`.
    `StringProperty` | `headerTextProperty()` | A property representing the header text for the dialog pane.
    `ReadOnlyDoubleProperty` | `heightProperty()` | Property representing the height of the dialog.
    `void` | `hide()` | Hides this `Dialog`.
    `void` | `initModality​(Modality modality)` | Specifies the modality for this dialog.
    `void` | `initOwner​(Window window)` | Specifies the owner `Window` for this dialog, or null for a top-level, unowned dialog.
    `void` | `initStyle​(StageStyle style)` | Specifies the style for this dialog.
    `boolean` | `isResizable()` | Returns whether or not the dialog is resizable.
    `boolean` | `isShowing()` | Returns whether or not the dialog is showing.
    `ObjectProperty<EventHandler<DialogEvent>>` | `onCloseRequestProperty()` | Called when there is an external request to close this `Dialog`.
    `ObjectProperty<EventHandler<DialogEvent>>` | `onHiddenProperty()` | Called just after the Dialog has been hidden.
    `ObjectProperty<EventHandler<DialogEvent>>` | `onHidingProperty()` | Called just prior to the Dialog being hidden.
    `ObjectProperty<EventHandler<DialogEvent>>` | `onShowingProperty()` | Called just prior to the Dialog being shown.
    `ObjectProperty<EventHandler<DialogEvent>>` | `onShownProperty()` | Called just after the Dialog is shown.
    `BooleanProperty` | `resizableProperty()` | Represents whether the dialog is resizable.
    `ObjectProperty<Callback<ButtonType,​R>>` | `resultConverterProperty()` | API to convert the `ButtonType` that the user clicked on into a result that can be returned via the `result` property.
    `ObjectProperty<R>` | `resultProperty()` | A property representing what has been returned from the dialog.
    `void` | `setContentText​(String contentText)` | Sets the string to show in the dialog content area.
    `void` | `setDialogPane​(DialogPane value)` | Sets the value of the property dialogPane.
    `void` | `setGraphic​(Node graphic)` | Sets the dialog graphic, which will be displayed either in the header, if one is showing, or to the left of the `content`.
    `void` | `setHeaderText​(String headerText)` | Sets the string to show in the dialog header area.
    `void` | `setHeight​(double height)` | Sets the height of the dialog.
    `void` | `setOnCloseRequest​(EventHandler<DialogEvent> value)` | Sets the value of the property onCloseRequest.
    `void` | `setOnHidden​(EventHandler<DialogEvent> value)` | Sets the value of the property onHidden.
    `void` | `setOnHiding​(EventHandler<DialogEvent> value)` | Sets the value of the property onHiding.
    `void` | `setOnShowing​(EventHandler<DialogEvent> value)` | Sets the value of the property onShowing.
    `void` | `setOnShown​(EventHandler<DialogEvent> value)` | Sets the value of the property onShown.
    `void` | `setResizable​(boolean resizable)` | Sets whether the dialog can be resized by the user.
    `void` | `setResult​(R value)` | Sets the value of the property result.
    `void` | `setResultConverter​(Callback<ButtonType,​R> value)` | Sets the value of the property resultConverter.
    `void` | `setTitle​(String title)` | Change the Title of the dialog.
    `void` | `setWidth​(double width)` | Sets the width of the dialog.
    `void` | `setX​(double x)` | Sets the value of the property x.
    `void` | `setY​(double y)` | Sets the value of the property y.
    `void` | `show()` | Shows the dialog but does not wait for a user response (in other words, this brings up a non-blocking dialog).
    `Optional<R>` | `showAndWait()` | Shows the dialog and waits for the user response (in other words, brings up a blocking dialog, with the returned value the users input).
    `ReadOnlyBooleanProperty` | `showingProperty()` | Represents whether the dialog is currently showing.
    `StringProperty` | `titleProperty()` | Return the titleProperty of the dialog.
    `ReadOnlyDoubleProperty` | `widthProperty()` | Property representing the width of the dialog.
    `ReadOnlyDoubleProperty` | `xProperty()` | The horizontal location of this `Dialog`.
    `ReadOnlyDoubleProperty` | `yProperty()` | The vertical location of this `Dialog`.

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

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

- - ### Property Detail

    - #### dialogPane

          public final ObjectProperty<DialogPane> dialogPaneProperty

      The root node of the dialog, the `DialogPane` contains all visual elements shown in the dialog. As such, it is possible to completely adjust the display of the dialog by modifying the existing dialog pane or creating a new one.
      See Also:
        `getDialogPane()`, `setDialogPane(DialogPane)`

    - #### contentText

          public final StringProperty contentTextProperty

      A property representing the content text for the dialog pane. The content text is lower precedence than the `content node`, meaning that if both the content node and the contentText properties are set, the content text will not be displayed in a default DialogPane instance.
      See Also:
        `getContentText()`, `setContentText(String)`

    - #### headerText

          public final StringProperty headerTextProperty

      A property representing the header text for the dialog pane. The header text is lower precedence than the `header node`, meaning that if both the header node and the headerText properties are set, the header text will not be displayed in a default DialogPane instance.
      See Also:
        `getHeaderText()`, `setHeaderText(String)`

    - #### graphic

          public final ObjectProperty<Node> graphicProperty

      The dialog graphic, presented either in the header, if one is showing, or to the left of the `content`.
      See Also:
        `getGraphic()`, `setGraphic(Node)`

    - #### result

          public final ObjectProperty<R> resultProperty

      A property representing what has been returned from the dialog. A result is generated through the `result converter`, which is intended to convert from the `ButtonType` that the user clicked on into a value of type R. Refer to the `Dialog` class JavaDoc for more details.
      See Also:
        `getResult()`, `setResult(R)`

    - #### resultConverter

          public final ObjectProperty<Callback<ButtonType,​R>> resultConverterProperty

      API to convert the `ButtonType` that the user clicked on into a result that can be returned via the `result` property. This is necessary as `ButtonType` represents the visual button within the dialog, and do not know how to map themselves to a valid result - that is a requirement of the dialog implementation by making use of the result converter. In some cases, the result type of a Dialog subclass is ButtonType (which means that the result converter can be null), but in some cases (where the result type, R, is not ButtonType or Void), this callback must be specified.
      See Also:
        `getResultConverter()`, `setResultConverter(Callback)`

    - #### showing

          public final ReadOnlyBooleanProperty showingProperty

      Represents whether the dialog is currently showing.
      See Also:
        `isShowing()`

    - #### resizable

          public final BooleanProperty resizableProperty

      Represents whether the dialog is resizable.
      See Also:
        `isResizable()`, `setResizable(boolean)`

    - #### width

          public final ReadOnlyDoubleProperty widthProperty

      Property representing the width of the dialog.
      See Also:
        `getWidth()`, `setWidth(double)`

    - #### height

          public final ReadOnlyDoubleProperty heightProperty

      Property representing the height of the dialog.
      See Also:
        `getHeight()`, `setHeight(double)`

    - #### title

          public final StringProperty titleProperty

      Return the titleProperty of the dialog.
      See Also:
        `getTitle()`, `setTitle(String)`

    - #### x

          public final ReadOnlyDoubleProperty xProperty

      The horizontal location of this `Dialog`. Changing this attribute will move the `Dialog` horizontally.
      See Also:
        `getX()`, `setX(double)`

    - #### y

          public final ReadOnlyDoubleProperty yProperty

      The vertical location of this `Dialog`. Changing this attribute will move the `Dialog` vertically.
      See Also:
        `getY()`, `setY(double)`

    - #### onShowing

          public final ObjectProperty<EventHandler<DialogEvent>> onShowingProperty

      Called just prior to the Dialog being shown.
      See Also:
        `getOnShowing()`, `setOnShowing(EventHandler)`

    - #### onShown

          public final ObjectProperty<EventHandler<DialogEvent>> onShownProperty

      Called just after the Dialog is shown.
      See Also:
        `getOnShown()`, `setOnShown(EventHandler)`

    - #### onHiding

          public final ObjectProperty<EventHandler<DialogEvent>> onHidingProperty

      Called just prior to the Dialog being hidden.
      See Also:
        `getOnHiding()`, `setOnHiding(EventHandler)`

    - #### onHidden

          public final ObjectProperty<EventHandler<DialogEvent>> onHiddenProperty

      Called just after the Dialog has been hidden. When the `Dialog` is hidden, this event handler is invoked allowing the developer to clean up resources or perform other tasks when the `Alert` is closed.
      See Also:
        `getOnHidden()`, `setOnHidden(EventHandler)`

    - #### onCloseRequest

          public final ObjectProperty<EventHandler<DialogEvent>> onCloseRequestProperty

      Called when there is an external request to close this `Dialog`. The installed event handler can prevent dialog closing by consuming the received event.
      See Also:
        `getOnCloseRequest()`, `setOnCloseRequest(EventHandler)`

  - ### Constructor Detail

    - #### Dialog

          public Dialog()

      Creates a dialog without a specified owner.

  - ### Method Detail

    - #### show

          public final void show()

      Shows the dialog but does not wait for a user response (in other words, this brings up a non-blocking dialog). Users of this API must either poll the `result property`, or else add a listener to the result property to be informed of when it is set.
      Throws:
        `IllegalStateException` - if this method is called on a thread other than the JavaFX Application Thread.

    - #### showAndWait

          public final Optional<R> showAndWait()

      Shows the dialog and waits for the user response (in other words, brings up a blocking dialog, with the returned value the users input).

      This method must be called on the JavaFX Application thread. 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.

      Returns:
        An `Optional` that contains the `result`. Refer to the `Dialog` class documentation for more detail.
      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.

    - #### close

          public final void close()

      Closes this `Dialog`. This call is equivalent to `hide()`.

    - #### hide

          public final void hide()

      Hides this `Dialog`.

    - #### initModality

          public final void initModality​(Modality modality)

      Specifies the modality for this dialog. This must be done prior to making the dialog visible. The modality is one of: Modality.NONE, Modality.WINDOW_MODAL, or Modality.APPLICATION_MODAL.
      Default value:
        Modality.APPLICATION_MODAL
      Parameters:
        `modality` - the modality for this dialog.
      Throws:
        `IllegalStateException` - if this property is set after the dialog has ever been made visible.

    - #### getModality

          public final Modality getModality()

      Retrieves the modality attribute for this dialog.
      Returns:
        the modality.

    - #### initStyle

          public final void initStyle​(StageStyle style)

      Specifies the style for this dialog. This must be done prior to making the dialog visible. The style is one of: StageStyle.DECORATED, StageStyle.UNDECORATED, StageStyle.TRANSPARENT, StageStyle.UTILITY, or StageStyle.UNIFIED.
      Default value:
        StageStyle.DECORATED
      Parameters:
        `style` - the style for this dialog.
      Throws:
        `IllegalStateException` - if this property is set after the dialog has ever been made visible.

    - #### initOwner

          public final void initOwner​(Window window)

      Specifies the owner `Window` for this dialog, or null for a top-level, unowned dialog. This must be done prior to making the dialog visible.
      Default value:
        null
      Parameters:
        `window` - the owner `Window` for this dialog.
      Throws:
        `IllegalStateException` - if this property is set after the dialog has ever been made visible.

    - #### getOwner

          public final Window getOwner()

      Retrieves the owner Window for this dialog, or null for an unowned dialog.
      Returns:
        the owner Window.

    - #### dialogPaneProperty

          public final ObjectProperty<DialogPane> dialogPaneProperty()

      The root node of the dialog, the `DialogPane` contains all visual elements shown in the dialog. As such, it is possible to completely adjust the display of the dialog by modifying the existing dialog pane or creating a new one.
      See Also:
        `getDialogPane()`, `setDialogPane(DialogPane)`

    - #### getDialogPane

          public final DialogPane getDialogPane()

      Gets the value of the property dialogPane.
      Property description:
        The root node of the dialog, the `DialogPane` contains all visual elements shown in the dialog. As such, it is possible to completely adjust the display of the dialog by modifying the existing dialog pane or creating a new one.

    - #### setDialogPane

          public final void setDialogPane​(DialogPane value)

      Sets the value of the property dialogPane.
      Property description:
        The root node of the dialog, the `DialogPane` contains all visual elements shown in the dialog. As such, it is possible to completely adjust the display of the dialog by modifying the existing dialog pane or creating a new one.

    - #### contentTextProperty

          public final StringProperty contentTextProperty()

      A property representing the content text for the dialog pane. The content text is lower precedence than the `content node`, meaning that if both the content node and the contentText properties are set, the content text will not be displayed in a default DialogPane instance.
      See Also:
        `getContentText()`, `setContentText(String)`

    - #### getContentText

          public final String getContentText()

      Returns the currently-set content text for this DialogPane.
      Returns:
        the currently-set content text for this DialogPane

    - #### setContentText

          public final void setContentText​(String contentText)

      Sets the string to show in the dialog content area. Note that the content text is lower precedence than the `content node`, meaning that if both the content node and the contentText properties are set, the content text will not be displayed in a default DialogPane instance.
      Parameters:
        `contentText` - the string to show in the dialog content area

    - #### headerTextProperty

          public final StringProperty headerTextProperty()

      A property representing the header text for the dialog pane. The header text is lower precedence than the `header node`, meaning that if both the header node and the headerText properties are set, the header text will not be displayed in a default DialogPane instance.
      See Also:
        `getHeaderText()`, `setHeaderText(String)`

    - #### getHeaderText

          public final String getHeaderText()

      Returns the currently-set header text for this DialogPane.
      Returns:
        the currently-set header text for this DialogPane

    - #### setHeaderText

          public final void setHeaderText​(String headerText)

      Sets the string to show in the dialog header area. Note that the header text is lower precedence than the `header node`, meaning that if both the header node and the headerText properties are set, the header text will not be displayed in a default DialogPane instance.
      Parameters:
        `headerText` - the string to show in the dialog header area

    - #### graphicProperty

          public final ObjectProperty<Node> graphicProperty()

      The dialog graphic, presented either in the header, if one is showing, or to the left of the `content`.
      See Also:
        `getGraphic()`, `setGraphic(Node)`

    - #### getGraphic

          public final Node getGraphic()

      Gets the value of the property graphic.
      Property description:
        The dialog graphic, presented either in the header, if one is showing, or to the left of the `content`.

    - #### setGraphic

          public final void setGraphic​(Node graphic)

      Sets the dialog graphic, which will be displayed either in the header, if one is showing, or to the left of the `content`.
      Parameters:
        `graphic` - The new dialog graphic, or null if no graphic should be shown.

    - #### resultProperty

          public final ObjectProperty<R> resultProperty()

      A property representing what has been returned from the dialog. A result is generated through the `result converter`, which is intended to convert from the `ButtonType` that the user clicked on into a value of type R. Refer to the `Dialog` class JavaDoc for more details.
      See Also:
        `getResult()`, `setResult(R)`

    - #### getResult

          public final R getResult()

      Gets the value of the property result.
      Property description:
        A property representing what has been returned from the dialog. A result is generated through the `result converter`, which is intended to convert from the `ButtonType` that the user clicked on into a value of type R. Refer to the `Dialog` class JavaDoc for more details.

    - #### setResult

          public final void setResult​(R value)

      Sets the value of the property result.
      Property description:
        A property representing what has been returned from the dialog. A result is generated through the `result converter`, which is intended to convert from the `ButtonType` that the user clicked on into a value of type R. Refer to the `Dialog` class JavaDoc for more details.

    - #### resultConverterProperty

          public final ObjectProperty<Callback<ButtonType,​R>> resultConverterProperty()

      API to convert the `ButtonType` that the user clicked on into a result that can be returned via the `result` property. This is necessary as `ButtonType` represents the visual button within the dialog, and do not know how to map themselves to a valid result - that is a requirement of the dialog implementation by making use of the result converter. In some cases, the result type of a Dialog subclass is ButtonType (which means that the result converter can be null), but in some cases (where the result type, R, is not ButtonType or Void), this callback must be specified.
      See Also:
        `getResultConverter()`, `setResultConverter(Callback)`

    - #### getResultConverter

          public final Callback<ButtonType,​R> getResultConverter()

      Gets the value of the property resultConverter.
      Property description:
        API to convert the `ButtonType` that the user clicked on into a result that can be returned via the `result` property. This is necessary as `ButtonType` represents the visual button within the dialog, and do not know how to map themselves to a valid result - that is a requirement of the dialog implementation by making use of the result converter. In some cases, the result type of a Dialog subclass is ButtonType (which means that the result converter can be null), but in some cases (where the result type, R, is not ButtonType or Void), this callback must be specified.

    - #### setResultConverter

          public final void setResultConverter​(Callback<ButtonType,​R> value)

      Sets the value of the property resultConverter.
      Property description:
        API to convert the `ButtonType` that the user clicked on into a result that can be returned via the `result` property. This is necessary as `ButtonType` represents the visual button within the dialog, and do not know how to map themselves to a valid result - that is a requirement of the dialog implementation by making use of the result converter. In some cases, the result type of a Dialog subclass is ButtonType (which means that the result converter can be null), but in some cases (where the result type, R, is not ButtonType or Void), this callback must be specified.

    - #### showingProperty

          public final ReadOnlyBooleanProperty showingProperty()

      Represents whether the dialog is currently showing.
      See Also:
        `isShowing()`

    - #### isShowing

          public final boolean isShowing()

      Returns whether or not the dialog is showing.
      Returns:
        true if dialog is showing.

    - #### resizableProperty

          public final BooleanProperty resizableProperty()

      Represents whether the dialog is resizable.
      See Also:
        `isResizable()`, `setResizable(boolean)`

    - #### isResizable

          public final boolean isResizable()

      Returns whether or not the dialog is resizable.
      Returns:
        true if dialog is resizable.

    - #### setResizable

          public final void setResizable​(boolean resizable)

      Sets whether the dialog can be resized by the user. Resizable dialogs can also be maximized ( maximize button becomes visible)
      Parameters:
        `resizable` - true if dialog should be resizable.

    - #### widthProperty

          public final ReadOnlyDoubleProperty widthProperty()

      Property representing the width of the dialog.
      See Also:
        `getWidth()`, `setWidth(double)`

    - #### getWidth

          public final double getWidth()

      Returns the width of the dialog.
      Returns:
        the width of the dialog

    - #### setWidth

          public final void setWidth​(double width)

      Sets the width of the dialog.
      Parameters:
        `width` - the width of the dialog

    - #### heightProperty

          public final ReadOnlyDoubleProperty heightProperty()

      Property representing the height of the dialog.
      See Also:
        `getHeight()`, `setHeight(double)`

    - #### getHeight

          public final double getHeight()

      Returns the height of the dialog.
      Returns:
        the height of the dialog

    - #### setHeight

          public final void setHeight​(double height)

      Sets the height of the dialog.
      Parameters:
        `height` - the height of the dialog

    - #### titleProperty

          public final StringProperty titleProperty()

      Return the titleProperty of the dialog.
      See Also:
        `getTitle()`, `setTitle(String)`

    - #### getTitle

          public final String getTitle()

      Return the title of the dialog.
      Returns:
        the title of the dialog

    - #### setTitle

          public final void setTitle​(String title)

      Change the Title of the dialog.
      Parameters:
        `title` - the Title of the dialog

    - #### getX

          public final double getX()

      Gets the value of the property x.
      Property description:
        The horizontal location of this `Dialog`. Changing this attribute will move the `Dialog` horizontally.

    - #### setX

          public final void setX​(double x)

      Sets the value of the property x.
      Property description:
        The horizontal location of this `Dialog`. Changing this attribute will move the `Dialog` horizontally.

    - #### xProperty

          public final ReadOnlyDoubleProperty xProperty()

      The horizontal location of this `Dialog`. Changing this attribute will move the `Dialog` horizontally.
      See Also:
        `getX()`, `setX(double)`

    - #### getY

          public final double getY()

      Gets the value of the property y.
      Property description:
        The vertical location of this `Dialog`. Changing this attribute will move the `Dialog` vertically.

    - #### setY

          public final void setY​(double y)

      Sets the value of the property y.
      Property description:
        The vertical location of this `Dialog`. Changing this attribute will move the `Dialog` vertically.

    - #### yProperty

          public final ReadOnlyDoubleProperty yProperty()

      The vertical location of this `Dialog`. Changing this attribute will move the `Dialog` vertically.
      See Also:
        `getY()`, `setY(double)`

    - #### buildEventDispatchChain

          public EventDispatchChain buildEventDispatchChain​(EventDispatchChain tail)

      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

    - #### setOnShowing

          public final void setOnShowing​(EventHandler<DialogEvent> value)

      Sets the value of the property onShowing.
      Property description:
        Called just prior to the Dialog being shown.

    - #### getOnShowing

          public final EventHandler<DialogEvent> getOnShowing()

      Gets the value of the property onShowing.
      Property description:
        Called just prior to the Dialog being shown.

    - #### onShowingProperty

          public final ObjectProperty<EventHandler<DialogEvent>> onShowingProperty()

      Called just prior to the Dialog being shown.
      See Also:
        `getOnShowing()`, `setOnShowing(EventHandler)`

    - #### setOnShown

          public final void setOnShown​(EventHandler<DialogEvent> value)

      Sets the value of the property onShown.
      Property description:
        Called just after the Dialog is shown.

    - #### getOnShown

          public final EventHandler<DialogEvent> getOnShown()

      Gets the value of the property onShown.
      Property description:
        Called just after the Dialog is shown.

    - #### onShownProperty

          public final ObjectProperty<EventHandler<DialogEvent>> onShownProperty()

      Called just after the Dialog is shown.
      See Also:
        `getOnShown()`, `setOnShown(EventHandler)`

    - #### setOnHiding

          public final void setOnHiding​(EventHandler<DialogEvent> value)

      Sets the value of the property onHiding.
      Property description:
        Called just prior to the Dialog being hidden.

    - #### getOnHiding

          public final EventHandler<DialogEvent> getOnHiding()

      Gets the value of the property onHiding.
      Property description:
        Called just prior to the Dialog being hidden.

    - #### onHidingProperty

          public final ObjectProperty<EventHandler<DialogEvent>> onHidingProperty()

      Called just prior to the Dialog being hidden.
      See Also:
        `getOnHiding()`, `setOnHiding(EventHandler)`

    - #### setOnHidden

          public final void setOnHidden​(EventHandler<DialogEvent> value)

      Sets the value of the property onHidden.
      Property description:
        Called just after the Dialog has been hidden. When the `Dialog` is hidden, this event handler is invoked allowing the developer to clean up resources or perform other tasks when the `Alert` is closed.

    - #### getOnHidden

          public final EventHandler<DialogEvent> getOnHidden()

      Gets the value of the property onHidden.
      Property description:
        Called just after the Dialog has been hidden. When the `Dialog` is hidden, this event handler is invoked allowing the developer to clean up resources or perform other tasks when the `Alert` is closed.

    - #### onHiddenProperty

          public final ObjectProperty<EventHandler<DialogEvent>> onHiddenProperty()

      Called just after the Dialog has been hidden. When the `Dialog` is hidden, this event handler is invoked allowing the developer to clean up resources or perform other tasks when the `Alert` is closed.
      See Also:
        `getOnHidden()`, `setOnHidden(EventHandler)`

    - #### setOnCloseRequest

          public final void setOnCloseRequest​(EventHandler<DialogEvent> value)

      Sets the value of the property onCloseRequest.
      Property description:
        Called when there is an external request to close this `Dialog`. The installed event handler can prevent dialog closing by consuming the received event.

    - #### getOnCloseRequest

          public final EventHandler<DialogEvent> getOnCloseRequest()

      Gets the value of the property onCloseRequest.
      Property description:
        Called when there is an external request to close this `Dialog`. The installed event handler can prevent dialog closing by consuming the received event.

    - #### onCloseRequestProperty

          public final ObjectProperty<EventHandler<DialogEvent>> onCloseRequestProperty()

      Called when there is an external request to close this `Dialog`. The installed event handler can prevent dialog closing by consuming the received event.
      See Also:
        `getOnCloseRequest()`, `setOnCloseRequest(EventHandler)`