Class DialogPane
- All Implemented Interfaces:
-
Styleable,EventTarget
@DefaultProperty("buttonTypes") public class DialogPane extends Pane Dialog instance. In this role, the DialogPane is responsible for the placement of headers, graphics, content, and buttons. The default implementation of DialogPane (that is, the DialogPane class itself) handles the layout via the normal Parent.layoutChildren() method. This method may be overridden by subclasses wishing to handle the layout in an alternative fashion). In addition to the header and content properties, there exists header text and content text properties. The way the *Text properties work is that they are a lower precedence compared to the Node properties, but they are far more convenient for developers in the common case, as it is likely the case that a developer more often than not simply wants to set a string value into the header or content areas of the DialogPane.
It is important to understand the implications of setting non-null values in the header and headerText properties. The key points are as follows:
- The
headerproperty takes precedence over theheaderTextproperty, so if both are set to non-null values,headerwill be used andheaderTextwill be ignored. - If
headerTextis set to a non-null value, and agraphichas also been set, the default position for the graphic shifts from being located to the left of the content area to being to the right of the header text. - If
headeris set to a non-null value, and agraphichas also been set, the graphic is removed from its default position (to the left of the content area), and is not placed to the right of the custom header node. If the graphic is desired, it should be manually added in to the layout of the custom header node manually.
DialogPane operates on the concept of ButtonType. A ButtonType is a descriptor of a single button that should be represented visually in the DialogPane. Developers who create a DialogPane therefore must specify the button types that they want to display, and this is done via the getButtonTypes() method, which returns a modifiable ObservableList, which users can add to and remove from as desired.
The ButtonType class defines a number of pre-defined button types, such as ButtonType.OK and ButtonType.CANCEL. Many users of the JavaFX dialogs API will find that these pre-defined button types meet their needs, particularly due to their built-in support for default and cancel buttons, as well as the benefit of the strings being translated into all languages which JavaFX is translated to. For users that want to define their own ButtonType (most commonly to define a button with custom text), they may do so via the constructors available on the ButtonType class.
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 lookupButton(ButtonType) method with the ButtonType (assuming it has already been set in the getButtonTypes() list. The returned Node is typically of type Button, but this depends on if the createButton(ButtonType) method has been overridden.
The DialogPane class offers a few methods that can be overridden by subclasses, to more easily enable custom functionality. These methods include the following:
These methods are documented, so please take note of the expectations placed on any developer who wishes to override these methods with their own functionality.
- Since:
- JavaFX 8u40
- See Also:
Property Summary
| Type | Property | Description |
|---|---|---|
final ObjectProperty<Node> |
content |
Property representing the content area of the dialog. |
final StringProperty |
contentText |
A property representing the content text for the dialog pane. |
final ObjectProperty<Node> |
expandableContent |
A property that represents the dialog expandable content area. |
final BooleanProperty |
expanded |
Represents whether the dialogPane is expanded. |
final ObjectProperty<Node> |
graphic |
The dialog graphic, presented either in the header, if one is showing, or to the left of the content. |
final ObjectProperty<Node> |
header |
Property representing the header area of the dialog pane. |
final StringProperty |
headerText |
A property representing the header text for the dialog pane. |
Properties declared in class javafx.scene.layout.Region
background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width
Properties declared in class javafx.scene.Parent
needsLayout
Properties declared in class javafx.scene.Node
accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, focusVisible, focusWithin, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visible
Field Summary
Fields declared in class javafx.scene.layout.Region
USE_COMPUTED_SIZE, USE_PREF_SIZE
Fields declared in class javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT
Constructor Summary
| Constructor | Description |
|---|---|
DialogPane() |
Creates a new DialogPane instance with a style class of 'dialog-pane'. |
Method Summary
| Modifier and Type | Method | Description |
|---|---|---|
final ObjectProperty<Node> |
contentProperty() |
Property representing the content area of the dialog. |
final StringProperty |
contentTextProperty() |
A property representing the content text for the dialog pane. |
protected Node |
createButton |
This method can be overridden by subclasses to create a custom button that will subsequently inserted into the DialogPane button area (created via the createButtonBar() method, but mostly commonly it is an instance of ButtonBar. |
protected Node |
createButtonBar() |
This method can be overridden by subclasses to provide the button bar. |
protected Node |
createDetailsButton() |
This method can be overridden by subclasses to create a custom details button. |
final ObjectProperty<Node> |
expandableContentProperty() |
A property that represents the dialog expandable content area. |
final BooleanProperty |
expandedProperty() |
Represents whether the dialogPane is expanded. |
final ObservableList<ButtonType> |
getButtonTypes() |
Observable list of button types used for the dialog button bar area (created via the createButtonBar() method). |
static List<CssMetaData<? extends Styleable, |
getClassCssMetaData() |
Gets the CssMetaData associated with this class, which may include the CssMetaData of its superclasses. |
final Node |
getContent() |
Returns the dialog content as a Node (even if it was set as a String using setContentText(String) - this was simply transformed into a Node (most probably a Label). |
final String |
getContentText() |
Returns the currently-set content text for this DialogPane. |
final Node |
getExpandableContent() |
Returns the dialog expandable content node, if one is set, or null otherwise. |
final Node |
getGraphic() |
Gets the value of the graphic property. |
final Node |
getHeader() |
Node which acts as the dialog pane header. |
final String |
getHeaderText() |
Returns the currently-set header text for this DialogPane. |
final ObjectProperty<Node> |
graphicProperty() |
The dialog graphic, presented either in the header, if one is showing, or to the left of the content. |
final ObjectProperty<Node> |
headerProperty() |
Property representing the header area of the dialog pane. |
final StringProperty |
headerTextProperty() |
A property representing the header text for the dialog pane. |
final boolean |
isExpanded() |
Returns whether or not the dialogPane is expanded. |
final Node |
lookupButton |
This method provides a way in which developers may retrieve the actual Node for a given ButtonType (assuming it is part of the button types list). |
final void |
setContent |
Assign dialog content. |
final void |
setContentText |
Sets the string to show in the dialog content area. |
final void |
setExpandableContent |
Sets the dialog expandable content node, or null if no expandable content needs to be shown. |
final void |
setExpanded |
Sets whether the dialogPane is expanded. |
final void |
setGraphic |
Sets the dialog graphic, which will be displayed either in the header, if one is showing, or to the left of the content. |
final void |
setHeader |
Assigns the dialog pane header. |
final void |
setHeaderText |
Sets the string to show in the dialog header area. |
Methods declared in class javafx.scene.layout.Pane
getChildren
Methods declared in class javafx.scene.layout.Region
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, getBackground, getBorder, getCssMetaData, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isResizable, isScaleShape, isSnapToPixel, layoutInArea, layoutInArea, layoutInArea, layoutInArea, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, opaqueInsetsProperty, paddingProperty, positionInArea, positionInArea, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, resize, scaleShapeProperty, setBackground, setBorder, setCacheShape, setCenterShape, setHeight, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setOpaqueInsets, setPadding, setPrefHeight, setPrefSize, setPrefWidth, setScaleShape, setShape, setSnapToPixel, setWidth, shapeProperty, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty
Methods declared in class javafx.scene.Parent
getBaselineOffset, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, layoutChildren, needsLayoutProperty, requestLayout, requestParentLayout, setNeedsLayout, updateBounds
Methods declared in class javafx.scene.Node
accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, focusVisibleProperty, focusWithinProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInitialFocusTraversable, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isFocusVisible, isFocusWithin, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookup, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, queryAccessibleAttribute, relocate, removeEventFilter, removeEventHandler, requestFocus, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty
Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods declared in interface javafx.css.Styleable
getStyleableNode
Property Details
graphic
public final ObjectProperty<Node> graphicProperty
content.- See Also:
header
public final ObjectProperty<Node> headerProperty
DialogPane class javadoc.- See Also:
headerText
public final StringProperty headerTextProperty
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. When headerText is set to a non-null value, this will result in the DialogPane switching its layout to the 'header' layout - as outlined in the DialogPane class javadoc.
content
public final ObjectProperty<Node> contentProperty
- See Also:
contentText
public final StringProperty contentTextProperty
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.expandableContent
public final ObjectProperty<Node> expandableContentProperty
expanded
public final BooleanProperty expandedProperty
Constructor Details
DialogPane
public DialogPane()
Method Details
graphicProperty
public final ObjectProperty<Node> graphicProperty()
content.- Returns:
- An ObjectProperty wrapping the current graphic.
- See Also:
getGraphic
public final Node getGraphic()
graphic property.- Property description:
- The dialog graphic, presented either in the header, if one is showing, or to the left of the
content. - Returns:
- the value of the
graphicproperty - See Also:
setGraphic
public final void setGraphic(Node graphic)
content.- Parameters:
-
graphic- The new dialog graphic, or null if no graphic should be shown.
getHeader
public final Node getHeader()
- Returns:
- the header of the dialog pane.
setHeader
public final void setHeader(Node header)
- Parameters:
-
header- The new header of the DialogPane.
headerProperty
public final ObjectProperty<Node> headerProperty()
DialogPane class javadoc.- Returns:
- the property representing the header area of the dialog pane
- See Also:
setHeaderText
public final void setHeaderText(String headerText)
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. When headerText is set to a non-null value, this will result in the DialogPane switching its layout to the 'header' layout - as outlined in the DialogPane class javadoc.
- Parameters:
-
headerText- the string to show in the dialog header area
getHeaderText
public final String getHeaderText()
- Returns:
- the currently-set header text for this DialogPane
headerTextProperty
public final StringProperty headerTextProperty()
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. When headerText is set to a non-null value, this will result in the DialogPane switching its layout to the 'header' layout - as outlined in the DialogPane class javadoc.
- Returns:
- the property representing the header text for the dialog pane
- See Also:
getContent
public final Node getContent()
setContentText(String) - this was simply transformed into a Node (most probably a Label).- Returns:
- dialog's content
setContent
public final void setContent(Node content)
- Parameters:
-
content- dialog's content
contentProperty
public final ObjectProperty<Node> contentProperty()
- Returns:
- the property representing the content area of the dialog
- See Also:
setContentText
public final void setContentText(String contentText)
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
getContentText
public final String getContentText()
- Returns:
- the currently-set content text for this DialogPane
contentTextProperty
public final StringProperty contentTextProperty()
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.- Returns:
- the property representing the content text for the dialog pane
- See Also:
expandableContentProperty
public final ObjectProperty<Node> expandableContentProperty()
- Returns:
- the property that represents the dialog expandable content area
- See Also:
getExpandableContent
public final Node getExpandableContent()
- Returns:
- the dialog expandable content node
setExpandableContent
public final void setExpandableContent(Node content)
- Parameters:
-
content- the dialog expandable content node
expandedProperty
public final BooleanProperty expandedProperty()
- Returns:
- the property representing whether the dialogPane is expanded
- See Also:
isExpanded
public final boolean isExpanded()
- Returns:
- true if dialogPane is expanded.
setExpanded
public final void setExpanded(boolean value)
expandable content to show.- Parameters:
-
value- true if dialogPane should be expanded.
getButtonTypes
public final ObservableList<ButtonType> getButtonTypes()
createButtonBar() method). Modifying the contents of this list will immediately change the buttons displayed to the user within the dialog pane.- Returns:
- The
ObservableListofbutton typesavailable to the user.
lookupButton
public final Node lookupButton(ButtonType buttonType)
ButtonType (assuming it is part of the button types list).- Parameters:
-
buttonType- TheButtonTypefor which a Node representation is requested. - Returns:
- The Node used to represent the button type, as created by
createButton(ButtonType), and only if the button type is part of thebutton typeslist, otherwise null.
createButtonBar
protected Node createButtonBar()
- The developer must immediately iterate through all
button typesand callcreateButton(ButtonType)for each of them in turn. - The developer must add a listener to the
button typeslist, and when this list changes update the button bar as appropriate. - Similarly, the developer must watch for changes to the
expandable contentproperty, adding and removing the details button (created viacreateDetailsButton()method).
The default implementation of this method creates and returns a new ButtonBar instance.
- Returns:
- the created button bar
createButton
protected Node createButton(ButtonType buttonType)
createButtonBar() method, but mostly commonly it is an instance of ButtonBar.- Parameters:
-
buttonType- TheButtonTypeto create a button from. - Returns:
- A JavaFX
Nodethat represents the givenButtonType, most commonly an instance ofButton.
createDetailsButton
protected Node createDetailsButton()
To override this method you must do two things:
- The button will need to have its own code set to handle mouse / keyboard interaction and to toggle the state of the
expandedproperty. - If your button changes its visuals based on whether the dialog pane is expanded or collapsed, you should add a listener to the
expandedproperty, so that you may update the button visuals.
- Returns:
- the created details button
getClassCssMetaData
public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()
CssMetaData associated with this class, which may include the CssMetaData of its superclasses.- Returns:
- the
CssMetaData
© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.