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

  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 Details

  - ### 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 Details

  - ### Dialog

    public Dialog()
    Creates a dialog without a specified owner.

- ## Method Details

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