Module  javafx.controls
软件包  javafx.scene.control

Class DialogPane

  • All Implemented Interfaces:
    StyleableEventTarget


    @DefaultProperty("buttonTypes")
    public class DialogPane
    extends Pane
    DialogPane应该被认为是在Dialog实例中显示的根节点 在此作用下,DialogPane负责安置headersgraphicscontent ,并buttons DialogPane的默认实现(即DialogPane类本身)通过正常的layoutChildren()方法处理布局。 这个方法可能被希望以另一种方式处理布局的子类覆盖)。

    除了headercontent属性外,还有header textcontent text属性。 * Text属性的工作方式是与Node属性相比,它们的优先级较低,但是对于常见情况下的开发人员而言,它们更为方便,因为开发人员通常可能并不想简单地设置一个字符串值到DialogPane的标题或内容区域。

    了解在headerheaderText属性中设置非空值的含义很重要。 要点如下:

    1. header财产优先于headerText属性,所以如果两者都设置为非空值, header将被使用, headerText将被忽略。
    2. 如果headerText设置为非空值,并且还设置了graphic ,则图形的默认位置从位于内容区域的左侧移动到标题文本的右侧。
    3. 如果header设置为非空值,并且还设置了graphic ,则图形将从其默认位置(内容区域的左侧)移除,并且不会放置在自定义标题节点的右侧。 如果需要图形,则应手动将其手动添加到自定义标题节点的布局中。

    DialogPane上的概念操作ButtonType ButtonType是单个按钮的描述符,应在DialogPane中以可视方式表示。 因此,创建DialogPane的开发人员必须指定要显示的按钮类型,并通过getButtonTypes()方法完成,该方法返回可修改的ObservableList ,用户可以根据需要添加和删除。

    ButtonType类定义了一些预定义的按钮类型,例如ButtonType.OKButtonType.CANCEL JavaFX对话框API的许多用户将发现这些预定义的按钮类型满足他们的需求,特别是由于它们内置了对defaultcancel按钮的支持,以及将字符串转换成JavaFX所有语言的好处翻译成 对于想要定义自己的ButtonType (最常用来定义带有自定义文本的按钮)的用户,他们可以通过ButtonType类上可用的构造函数来实现。

    开发人员将很快发现,通过ButtonType课程提供的可配置性数量很少。 这是有意的,但并不意味着开发人员不能修改由指定的ButtonType创建的按钮。 为此,开发人员只需使用ButtonType调用lookupButton(ButtonType)方法(假设它已经在getButtonTypes()列表中设置),返回的节点通常是Button ,但这取决于是否已经覆盖了createButton(ButtonType)方法。

    DialogPane类提供了一些可以被子类覆盖的方法,以便更轻松地启用自定义功能。 这些方法包括:

    这些方法被记录在案,所以请注意任何开发人员希望通过自己的功能覆盖这些方法的期望。

    从以下版本开始:
    JavaFX 8u40
    另请参见:
    Dialog
    • Property Detail

      • header

        public final ObjectProperty<Node> headerProperty
        表示对话框窗格的标题区域的属性。 请注意,如果此标头设置为非空值,它将占用DialogPane的整个顶部区域。 它也将导致DialogPane将其布局切换到“标题”布局,如DialogPane类javadoc中所述。
        另请参见:
        getHeader()setHeader(Node)
      • headerText

        public final StringProperty headerTextProperty
        表示对话框窗格的标题文本的属性。 标题文本的优先级低于header node ,这意味着如果头节点和headerText属性均已设置,则头文本将不会显示在默认的DialogPane实例中。

        当headerText设置为非空值时,这将导致DialogPane将其布局切换到“标题”布局,如DialogPane类javadoc中所述。

        另请参见:
        getHeaderText()setHeaderText(String)
      • contentText

        public final StringProperty contentTextProperty
        表示对话窗格的内容文本的属性。 内容文本的优先级低于content node ,这意味着如果内容节点和contentText属性均已设置,内容文本将不会显示在默认的DialogPane实例中。
        另请参见:
        getContentText()setContentText(String)
      • expandableContent

        public final ObjectProperty<Node> expandableContentProperty
        表示对话框可扩展内容区域的属性。 任何节点都可以放置在此区域,但只有当用户点击“显示详细信息”可展开按钮时才会显示。 当可扩展内容属性不为空时,将自动添加此按钮。
        另请参见:
        getExpandableContent()setExpandableContent(Node)
    • 构造方法详细信息

      • DialogPane

        public DialogPane​()
        创建一个带有“dialog-pane”样式类的新DialogPane实例。
    • 方法详细信息

      • getGraphic

        public final Node getGraphic​()
        获取属性图形的值。
        Property description:
        对话图形,在标题中显示,如果显示,或 content的左侧。
      • setGraphic

        public final void setGraphic​(Node graphic)
        设置对话框图形,将显示在标题中(如果显示)或 content左侧。
        参数
        graphic - 新的对话框图形,如果不显示图形,则为null。
      • getHeader

        public final Node getHeader​()
        用作对话框窗格标题的节点。
        结果
        对话窗格的标题。
      • setHeader

        public final void setHeader​(Node header)
        分配对话窗格标题。 任何节点都可以使用。
        参数
        header - header的新标题。
      • headerProperty

        public final ObjectProperty<Node> headerProperty​()
        表示对话框窗格的标题区域的属性。 请注意,如果此标头设置为非空值,它将占用DialogPane的整个顶部区域。 它也将导致DialogPane将其布局切换到“标题”布局,如DialogPane类javadoc中所述。
        另请参见:
        getHeader()setHeader(Node)
      • setHeaderText

        public final void setHeaderText​(String headerText)
        设置在对话框头部区域显示的字符串。 请注意,标题文本的优先级低于header node ,这意味着如果头节点和headerText属性均已设置,则头文本将不会显示在默认的DialogPane实例中。

        当headerText设置为非空值时,这将导致DialogPane将其布局切换到“标题”布局,如DialogPane类javadoc中所述。

        参数
        headerText - 要在对话框标题区域中显示的字符串
      • getHeaderText

        public final String getHeaderText​()
        返回此DialogPane的当前设置的标题文本。
        结果
        此DialogPane的当前设置的标题文本
      • headerTextProperty

        public final StringProperty headerTextProperty​()
        表示对话框窗格的标题文本的属性。 标题文本的优先级低于header node ,这意味着如果头节点和headerText属性均已设置,则标题文本将不会显示在默认的DialogPane实例中。

        当headerText设置为非空值时,这将导致DialogPane将其布局切换到“标题”布局,如DialogPane类javadoc中所述。

        另请参见:
        getHeaderText()setHeaderText(String)
      • getContent

        public final Node getContent​()
        将对话框内容作为节点返回(即使使用setContentText(String)将其设置为String) - 这仅仅是转换为Node (最可能是Label )。
        结果
        对话框的内容
      • setContent

        public final void setContent​(Node content)
        分配对话框内容。 任何节点都可以使用
        参数
        content - 对话框的内容
      • setContentText

        public final void setContentText​(String contentText)
        设置在对话框内容区域显示的字符串。 请注意,内容文本的优先级低于content node ,这意味着如果内容节点和contentText属性均已设置,内容文本将不会显示在默认的DialogPane实例中。
        参数
        contentText - 要在对话框内容区域显示的字符串
      • getContentText

        public final String getContentText​()
        返回此DialogPane的当前设置的内容文本。
        结果
        此DialogPane的当前设置的内容文本
      • contentTextProperty

        public final StringProperty contentTextProperty​()
        表示对话窗格的内容文本的属性。 内容文本的优先级低于content node ,这意味着如果内容节点和contentText属性均已设置,内容文本将不会显示在默认的DialogPane实例中。
        另请参见:
        getContentText()setContentText(String)
      • expandableContentProperty

        public final ObjectProperty<Node> expandableContentProperty​()
        表示对话框可扩展内容区域的属性。 任何节点都可以放置在此区域,但只有当用户点击“显示详细信息”可展开按钮时才会显示。 当可扩展内容属性不为空时,将自动添加此按钮。
        另请参见:
        getExpandableContent()setExpandableContent(Node)
      • getExpandableContent

        public final Node getExpandableContent​()
        返回对话框可扩展内容节点(如果已设置),否则返回null。
        结果
        对话框可展开内容节点
      • setExpandableContent

        public final void setExpandableContent​(Node content)
        设置对话框可扩展内容节点,如果不显示可扩展内容,则设置为null。
        参数
        content - 对话框可扩展内容节点
      • isExpanded

        public final boolean isExpanded​()
        返回是否扩展了dialogPane。
        结果
        如果对话框扩展,则为true。
      • setExpanded

        public final void setExpanded​(boolean value)
        设置dialogPane是否展开。 当有expandable content显示时,这只是有意义的。
        参数
        value - 如果对话框应该展开, value true。
      • lookupButton

        public final Node lookupButton​(ButtonType buttonType)
        该方法提供了开发人员可以为给定的ButtonType检索实际节点(假设它是button types列表的一部分)的方式。
        参数
        buttonType - 请求节点表示的ButtonType
        结果
        节点用于表示由 createButton(ButtonType)创建的按钮类型,只有按钮类型是 button types列表的一部分,否则为空。
      • createButtonBar

        protected Node createButtonBar​()
        这个方法可以被子类覆盖以提供按钮栏。 请注意,通过覆盖此方法,开发人员必须承担多重责任:
        1. 开发人员必须立即重复所有button types并依次调用createButton(ButtonType)
        2. 开发人员必须向button types列表添加一个监听器,并且当此列表更改时更新按钮栏。
        3. 类似地,开发人员必须注意更改expandable content属性,添加和删除详细信息按钮(通过createDetailsButton()创建)。

        此方法的默认实现将创建并返回一个新的ButtonBar实例。

        结果
        创建的按钮栏
      • createButton

        protected Node createButton​(ButtonType buttonType)
        这个方法可以被子类覆盖,创建一个随后插入DialogPane按钮区域的自定义按钮(通过createButtonBar()方法创建,但通常它是ButtonBar一个实例。
        参数
        buttonType - ButtonType创建一个按钮。
        结果
        一个JavaFX Node ,代表给定的ButtonType ,最常见的是Button一个实例。
      • createDetailsButton

        protected Node createDetailsButton​()
        子类可以覆盖此方法来创建自定义详细信息按钮。

        要重写这个方法,你必须做两件事情:

        1. 该按钮将需要有自己的代码集来处理鼠标/键盘交互并切换expanded属性的状态。
        2. 如果您的按钮基于对话框窗格是否展开或折叠来更改其视觉效果,则应将监听器添加到expanded属性,以便您可以更新按钮的视觉效果。
        结果
        创建的详细信息按钮
      • layoutChildren

        protected void layoutChildren​()
        在布局传递过程中调用这个Parent的孩子。 默认情况下,它只会将受管理的可调整大小的内容的大小设置为其首选大小,并且不会执行任何节点定位。

        子类应该根据需要重写此函数以布局内容。

        重写:
        layoutChildrenParent
      • computeMinWidth

        protected double computeMinWidth​(double height)
        计算该区域的最小宽度。 默认情况下返回左和右插入的总和。 区域子类应该覆盖此方法,以根据其内容和布局策略返回适当的值。 如果子类没有VERTICAL内容偏差,则可以忽略height参数。
        重写:
        computeMinWidthRegion
        参数
        height - 如果最小宽度取决于应该使用的高度
        结果
        计算出该区域的最小宽度
      • computeMinHeight

        protected double computeMinHeight​(double width)
        计算该区域的最小高度。 默认返回顶部和底部插入的总和。 区域子类应该覆盖此方法,以根据其内容和布局策略返回适当的值。 如果子类没有HORIZONTAL内容偏差,则可以忽略width参数。
        重写:
        computeMinHeightRegion
        参数
        width - 如果最小高度取决于应该使用的宽度
        结果
        计算该区域的最小高度
      • computePrefWidth

        protected double computePrefWidth​(double height)
        计算给定高度的该区域的首选宽度。 区域子类应该覆盖此方法,以根据其内容和布局策略返回适当的值。 如果子类没有VERTICAL内容偏差,则可以忽略height参数。
        重写:
        computePrefWidthRegion
        参数
        height - 如果首选宽度取决于它应该使用的高度
        结果
        计算这个区域的首选宽度
      • computePrefHeight

        protected double computePrefHeight​(double width)
        计算给定宽度的该区域的首选高度; 区域子类应该覆盖此方法,以根据其内容和布局策略返回适当的值。 如果子类没有HORIZONTAL内容偏差,则可以忽略width参数。
        重写:
        computePrefHeightRegion
        参数
        width - 如果偏好的高度取决于应该使用的宽度
        结果
        该区域计算的优选高度
      • getClassCssMetaData

        public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData​()
        结果
        与此类相关联的CssMetaData可能包括其类的CssMetaData。