Module  javafx.graphics
软件包  javafx.scene.layout

Class BorderPane

  • All Implemented Interfaces:
    StyleableEventTarget


    public class BorderPane
    extends Pane
    BorderPane在上,左,右,底部和中间位置摆放孩子。

    显示每个孩子的位置的图表

    顶部和底部的孩子将被调整到首选高度,并扩展边框的宽度。 左右孩子将被调整到其首选宽度并延长顶部和底部节点之间的长度。 并且中心节点将被调整大小以填补中间的可用空间。 任何职位都可能为空。 例:
       BorderPane borderPane = new BorderPane(); ToolBar toolbar = new ToolBar(); HBox statusbar = new HBox(); Node appContent = new AppContentNode(); borderPane.setTop(toolbar); borderPane.setCenter(appContent); borderPane.setBottom(statusbar);  

    Borderpanes可能采用背景和边框风格,使用CSS。 有关详细信息,请参阅Region超类。

    BorderPane尊重其孩子的最小,首选和最大尺寸。 如果孩子的可调整范围阻止它被调整大小以适应其位置,则它将使用默认对齐方式相对于空格进行对齐,如下所示:

    • 顶部:Pos.TOP_LEFT
    • bottom:Pos.BOTTOM_LEFT
    • 左:Pos.TOP_LEFT
    • 右:POS.TOP_RIGHT
    • 中心:Pos.CENTER
    有关如何自定义这些对齐方式,请参阅“可选布局约束”。

    BorderPane将每个孩子置于五个职位,不管孩子的可见财产价值如何; 非托管儿童被忽视。

    可调整范围

    BorderPane通常用作Scene的根,在这种情况下,它的大小将跟踪场景的大小。 如果应用程序尚未直接设置场景或舞台大小,场景大小将被初始化为边框窗格的首选大小。 但是,如果边框窗格具有除场景之外的父级,则该父级将在布局期间在边框窗格的可调整范围内调整边框的大小。 默认情况下,边框窗格根据其内容计算此范围,如下表所示。

    BorderPane Resize Table width height minimum left/right insets plus width required to display right/left children at their pref widths and top/bottom/center with at least their min widths top/bottom insets plus height required to display top/bottom children at their pref heights and left/right/center with at least their min heights preferred left/right insets plus width required to display top/right/bottom/left/center children with at least their pref widths top/bottom insets plus height required to display top/right/bottom/left/center children with at least their pref heights maximum Double.MAX_VALUE Double.MAX_VALUE

    边框窗格的无界最大宽度和高度是指示父级可以将其调整大小超出其首选大小,以填充分配给它的空间。

    BorderPane提供直接设置尺寸范围的属性。 这些属性默认为哨兵值Region.USE_COMPUTED_SIZE,但是应用程序可能会根据需要将它们设置为其他值:

       borderPane.setPrefSize(500,400);  
    应用程序可以通过将这些属性设置回Region.USE_COMPUTED_SIZE来还原计算值。

    BorderPane在默认情况下不剪切其内容,因此如果孩子的最小大小阻止其适合其空间,儿童的边界可能会延伸到其自己的界限之外。

    可选布局限制

    应用程序可以设置对个别孩子的限制,以自定义BorderPane的布局。 对于每个约束,BorderPane提供了一种静态方法,用于在孩子上设置它。

    BorderPane Constraint Table Constraint Type Description alignment javafx.geometry.Pos The alignment of the child within its area of the border pane. margin javafx.geometry.Insets Margin space around the outside of the child.

    例:

       ListView list = new ListView(); BorderPane.setAlignment(list, Pos.TOP_LEFT); BorderPane.setMargin(list, new Insets(12,12,12,12)); borderPane.setCenter(list);  
    从以下版本开始:
    JavaFX 2.0
    • Property Detail

      • center

        public final ObjectProperty<Node> centerProperty
        节点放置在此边框窗格的中心。 如果可调整大小,它将被调整大小,填充顶部,底部,左侧和右侧节点之间的边框窗格的中心。 如果节点不能调整大小以填充中心空间(它不可调整大小或其最大大小阻止它),那么它将被中心对齐,除非已设置小孩的对齐约束。
        另请参见:
        getCenter()setCenter(Node)
      • top

        public final ObjectProperty<Node> topProperty
        节点放置在此边框的顶部边缘。 如果可调整大小,它将被调整到其首选高度,并且其宽度将跨越边框窗格的宽度。 如果节点无法调整大小以填充顶部空间(不可调整大小或其最大大小阻止它),则它将在空间中左对齐,除非已设置小孩的对齐约束。
        另请参见:
        getTop()setTop(Node)
      • bottom

        public final ObjectProperty<Node> bottomProperty
        节点放置在此边框的底部边缘。 如果可调整大小,它将被调整到其首选高度,并且其宽度将跨越边框窗格的宽度。 如果节点无法调整大小以填满底部空间(不可调整大小或其最大大小阻止它),那么它将在空间内左对齐,除非已设置小孩的对齐约束。
        另请参见:
        getBottom()setBottom(Node)
      • left

        public final ObjectProperty<Node> leftProperty
        节点位于此边框的左边缘。 如果可调整大小,它将被调整为首选宽度,它的高度将跨越顶部和底部节点之间的边框窗格的高度。 如果节点无法调整大小以填充左侧空间(不可调整大小或其最大大小阻止它),则它将在空间中左对齐,除非已设置子对齐约束。
        另请参见:
        getLeft()setLeft(Node)
      • right

        public final ObjectProperty<Node> rightProperty
        放置在该边框窗格右边缘的节点。 如果可调整大小,它将被调整为首选宽度,它的高度将跨越顶部和底部节点之间的边框窗格的高度。 如果节点无法调整大小以填充正确的空间(不可调整大小或其最大大小阻止它),那么它将在空间内对齐,除非已设置小孩的对齐约束。
        另请参见:
        getRight()setRight(Node)
    • 构造方法详细信息

      • BorderPane

        public BorderPane​()
        创建BorderPane布局。
      • BorderPane

        public BorderPane​(Node center)
        创建一个BorderPane布局,给定的Node作为BorderPane的中心。
        参数
        center - 要设置为BorderPane中心的节点。
        从以下版本开始:
        JavaFX 8.0
      • BorderPane

        public BorderPane​(Node center,
                          Node top,
                          Node right,
                          Node bottom,
                          Node left)
        创建BorderPane布局,其中给定的节点用于边框中每个主要布局区域。 顶部,右侧,底部和左侧节点按顺时针方向列出。
        参数
        center - 要设置为BorderPane中心的节点。
        top - 要设置为BorderPane顶部的节点。
        right - 要设置为BorderPane右侧的节点。
        bottom - 要设置为BorderPane底部的节点。
        left - 要设置为BorderPane左侧的节点。
        从以下版本开始:
        JavaFX 8.0
    • 方法详细信息

      • setAlignment

        public static void setAlignment​(Node child,
                                        Pos value)
        设置边框窗格中包含的子对象。 如果设置,将覆盖边框窗格的小孩位置的默认对齐方式。 将值设置为null将删除约束。
        参数
        child - 边框窗格的子节点
        value - 孩子的对齐位置
      • getAlignment

        public static Pos getAlignment​(Node child)
        如果设置,返回小孩的对齐约束。
        参数
        child - 边框窗格的子节点
        结果
        小孩的对齐位置,如果没有设置对齐,则为空
      • setMargin

        public static void setMargin​(Node child,
                                     Insets value)
        设置由边框窗格包含的小孩的边距。 如果设置,边框窗格将其周围留有边框空间。 将值设置为null将删除约束。
        参数
        child - 边框窗格的子节点
        value - 孩子周围的空间
      • getMargin

        public static Insets getMargin​(Node child)
        如果设置,返回小孩的边距约束。
        参数
        child - 边框窗格的子节点
        结果
        小孩的保证金,如果没有设置保证金,则为null
      • clearConstraints

        public static void clearConstraints​(Node child)
        从子节点中删除所有边框窗格约束。
        参数
        child - 子节点
      • centerProperty

        public final ObjectProperty<Node> centerProperty​()
        节点放置在此边框窗格的中心。 如果可调整大小,它将被调整大小,填充顶部,底部,左侧和右侧节点之间的边框窗格的中心。 如果节点不能调整大小以填充中心空间(它不可调整大小或其最大大小阻止它),那么它将被中心对齐,除非已设置小孩的对齐约束。
        另请参见:
        getCenter()setCenter(Node)
      • setCenter

        public final void setCenter​(Node value)
        设置物业中心的价值。
        Property description:
        节点放置在此边框窗格的中心。 如果可调整大小,它将被调整大小,填充顶部,底部,左侧和右侧节点之间的边框窗格的中心。 如果节点不能调整大小以填充中心空间(它不可调整大小或其最大大小阻止它),那么它将被中心对齐,除非已设置小孩的对齐约束。
      • getCenter

        public final Node getCenter​()
        获取物业中心的价值。
        Property description:
        节点放置在此边框窗格的中心。 如果可调整大小,它将被调整大小,填充顶部,底部,左侧和右侧节点之间的边框窗格的中心。 如果节点不能调整大小以填充中心空间(它不可调整大小或其最大大小阻止它),那么它将被中心对齐,除非已设置小孩的对齐约束。
      • topProperty

        public final ObjectProperty<Node> topProperty​()
        节点放置在此边框的顶部边缘。 如果可调整大小,它将被调整到其首选高度,并且其宽度将跨越边框窗格的宽度。 如果节点无法调整大小以填充顶部空间(不可调整大小或其最大大小阻止它),则它将在空间中左对齐,除非已设置小孩的对齐约束。
        另请参见:
        getTop()setTop(Node)
      • setTop

        public final void setTop​(Node value)
        设置属性顶部的值。
        Property description:
        节点放置在此边框的顶部边缘。 如果可调整大小,它将被调整到其首选高度,并且其宽度将跨越边框窗格的宽度。 如果节点无法调整大小以填充顶部空间(不可调整大小或其最大大小阻止它),则它将在空间中左对齐,除非已设置小孩的对齐约束。
      • getTop

        public final Node getTop​()
        获取属性顶部的值。
        Property description:
        节点放置在此边框的顶部边缘。 如果可调整大小,它将被调整到其首选高度,并且其宽度将跨越边框窗格的宽度。 如果节点无法调整大小以填充顶部空间(不可调整大小或其最大大小阻止它),则它将在空间中左对齐,除非已设置小孩的对齐约束。
      • bottomProperty

        public final ObjectProperty<Node> bottomProperty​()
        节点放置在此边框的底部边缘。 如果可调整大小,它将被调整到其首选高度,并且其宽度将跨越边框窗格的宽度。 如果节点无法调整大小以填满底部空间(不可调整大小或其最大大小阻止它),那么它将在空间内左对齐,除非已设置小孩的对齐约束。
        另请参见:
        getBottom()setBottom(Node)
      • setBottom

        public final void setBottom​(Node value)
        设置属性值的底部。
        Property description:
        节点放置在此边框的底部边缘。 如果可调整大小,它将被调整到其首选高度,并且其宽度将跨越边框窗格的宽度。 如果节点无法调整大小以填满底部空间(不可调整大小或其最大大小阻止它),那么它将在空间内左对齐,除非已设置小孩的对齐约束。
      • getBottom

        public final Node getBottom​()
        获取属性底部的值。
        Property description:
        节点放置在此边框的底部边缘。 如果可调整大小,它将被调整到其首选高度,并且其宽度将跨越边框窗格的宽度。 如果节点无法调整大小以填满底部空间(不可调整大小或其最大大小阻止它),那么它将在空间内左对齐,除非已设置小孩的对齐约束。
      • leftProperty

        public final ObjectProperty<Node> leftProperty​()
        节点位于此边框的左边缘。 如果可调整大小,它将被调整为首选宽度,它的高度将跨越顶部和底部节点之间的边框窗格的高度。 如果节点无法调整大小以填充左侧空间(不可调整大小或其最大大小阻止它),则它将在空间中左对齐,除非已设置子对齐约束。
        另请参见:
        getLeft()setLeft(Node)
      • setLeft

        public final void setLeft​(Node value)
        设置剩余属性的值。
        Property description:
        节点位于此边框的左边缘。 如果可调整大小,它将被调整为首选宽度,它的高度将跨越顶部和底部节点之间的边框窗格的高度。 如果节点无法调整大小以填充左侧空间(不可调整大小或其最大大小阻止它),则它将在空间中左对齐,除非已设置子对齐约束。
      • getLeft

        public final Node getLeft​()
        获取剩下的属性的值。
        Property description:
        节点位于此边框的左边缘。 如果可调整大小,它将被调整为首选宽度,它的高度将跨越顶部和底部节点之间的边框窗格的高度。 如果节点无法调整大小以填充左侧空间(不可调整大小或其最大大小阻止它),则它将在空间中左对齐,除非已设置子对齐约束。
      • rightProperty

        public final ObjectProperty<Node> rightProperty​()
        放置在该边框窗格右边缘的节点。 如果可调整大小,它将被调整为首选宽度,它的高度将跨越顶部和底部节点之间的边框窗格的高度。 如果节点无法调整大小以填充正确的空间(不可调整大小或其最大大小阻止它),那么它将在空间内对齐,除非已设置小孩的对齐约束。
        另请参见:
        getRight()setRight(Node)
      • setRight

        public final void setRight​(Node value)
        设置属性的值。
        Property description:
        放置在该边框窗格右边缘的节点。 如果可调整大小,它将被调整为首选宽度,它的高度将跨越顶部和底部节点之间的边框窗格的高度。 如果节点无法调整大小以填充正确的空间(不可调整大小或其最大大小阻止它),那么它将在空间内对齐,除非已设置小孩的对齐约束。
      • getRight

        public final Node getRight​()
        获取产权的价值。
        Property description:
        放置在该边框窗格右边缘的节点。 如果可调整大小,它将被调整为首选宽度,它的高度将跨越顶部和底部节点之间的边框窗格的高度。 如果节点无法调整大小以填充正确的空间(不可调整大小或其最大大小阻止它),那么它将在空间内对齐,除非已设置小孩的对齐约束。
      • computeMinWidth

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

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

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

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

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

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

        重写:
        layoutChildrenParent