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

Class FlowPane

  • All Implemented Interfaces:
    StyleableEventTarget


    public class FlowPane
    extends Pane
    FlowPane将其孩子摆放在流过玻璃边界的流中。

    水平flowpane(默认)将以行布局节点,以flowpane的宽度包装。 一个垂直的flowpane在柱子上铺设节点,以流片的高度包裹。 如果flowpane有一个边框和/或填充集,内容将在这些插入内流动。

    FlowPane的prefWrapLength属性建立它的首选宽度(水平)或首选高度(垂直)。 如果默认值(400)不够,应用程序应设置prefWrapLength。 请注意,prefWrapLength仅用于计算首选大小,可能不会反映实际的包装尺寸,跟踪实际尺寸。

    alignment属性控制行和列如何在flowpane的范围内对齐,并且默认为Pos.TOP_LEFT。 还可以通过为垂直的水平或列对齐设置rowValignment来控制行和列中节点的对齐。

    水平流花的例子:

       Image images[] = { ... }; FlowPane flow = new FlowPane(); flow.setVgap(8); flow.setHgap(4); flow.setPrefWrapLength(300); // preferred width = 300 for (int i = 0; i < images.length; i++) { flow.getChildren().add(new ImageView(image[i]); }  

    垂直风车的例子:

       FlowPane flow = new FlowPane(Orientation.VERTICAL); flow.setColumnHalignment(HPos.LEFT); // align labels on left flow.setPrefWrapLength(200); // preferred height = 200 for (int i = 0; i < titles.size(); i++) { flow.getChildren().add(new Label(titles[i]); }  

    FlowPane为每个被管理的小孩提供了无论儿童的可见属性值如何; 所有布局计算都忽略非托管孩子。

    FlowPane可能使用CSS来设计背景和边框。 有关详细信息,请参阅Region超类。

    可调整范围

    Flowpane的父级将在布局期间在flowpane的可调整大小范围内调整flowpane的大小。 默认情况下,flowpane将根据下表中概述的内容计算此范围。

    Horizontal width height minimum left/right insets plus largest of children's pref widths top/bottom insets plus height required to display all children at their preferred heights when wrapped at a specified width preferred left/right insets plus prefWrapLength top/bottom insets plus height required to display all children at their pref heights when wrapped at a specified width maximum Double.MAX_VALUE Double.MAX_VALUE

    Vertical width height minimum left/right insets plus width required to display all children at their preferred widths when wrapped at a specified height top/bottom insets plus largest of children's pref heights preferred left/right insets plus width required to display all children at their pref widths when wrapped at the specified height top/bottom insets plus prefWrapLength maximum Double.MAX_VALUE Double.MAX_VALUE

    Flowpane的无界最大宽度和高度是对父母的指示,它可以调整大小超过其首选大小,以填充分配给它的任何空间。

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

       <b>flowpane.setMaxWidth(500);</b>  
    应用程序可以通过将这些属性设置回Region.USE_COMPUTED_SIZE来还原计算值。

    FlowPane在默认情况下不剪切其内容,因此如果小孩的pref大小大于空间flowpane必须为其分配的空间,则儿童边界可能会扩展到其自己的边界之外。

    从以下版本开始:
    JavaFX 2.0
    • Property Detail

      • orientation

        public final ObjectProperty<Orientation> orientationProperty
        这个流面的方向。 一个水平的花盆将孩子们从左到右放置在包围在流光溢出的宽度边界处。 垂直的花盆将儿童从上至下放置,以流光飞溅的高度包裹。 默认为水平。
        另请参见:
        getOrientation()setOrientation(Orientation)
      • hgap

        public final DoubleProperty hgapProperty
        水平流图中每个节点之间的水平空间量或垂直流动叶片中的列间空间量。
        另请参见:
        getHgap()setHgap(double)
      • prefWrapLength

        public final DoubleProperty prefWrapLengthProperty
        其中内容应包装在水平花式板中的优选宽度或其中内容应包装在垂直透光板中的优选高度。

        此值仅用于计算flowpane的首选大小,并且可能不反映实际的宽度或高度,如果flowpane调整为除了其优选大小之外的其他值,则可能会发生变化。

        应用程序应初始化此值以定义用于包装内容的合理范围。

        另请参见:
        getPrefWrapLength()setPrefWrapLength(double)
      • alignment

        public final ObjectProperty<Pos> alignmentProperty
        Flowpane的内容在其宽度和高度之间的整体对齐。

        对于水平流动叶片,每行将使用对齐方式的hpos值在Flowpane的宽度内对齐,并且行将使用对齐方式的vpos值在flowpane的高度内对齐。

        对于垂直的flowpane,每列将使用对齐的vpos值在Flowpane的高度内对齐,并且列将使用alignment的hpos值在Flowpane的宽度内对齐。

        另请参见:
        getAlignment()setAlignment(Pos)
      • rowValignment

        public final ObjectProperty<VPos> rowValignmentProperty
        水平流花线每行内的节点垂直对齐。 如果此属性设置为VPos.BASELINE,则flowpane将始终将小孩的大小调整为其首选高度,而不是扩展高度以填充行高。 对于垂直流路,该属性被忽略。
        另请参见:
        getRowValignment()setRowValignment(VPos)
    • 构造方法详细信息

      • FlowPane

        public FlowPane​()
        使用hgap / vgap = 0创建一个水平FlowPane布局。
      • FlowPane

        public FlowPane​(Orientation orientation)
        使用指定的方向创建一个FlowPane布局,并创建hgap / vgap = 0。
        参数
        orientation - 瓦片应流动和包裹的方向
      • FlowPane

        public FlowPane​(double hgap,
                        double vgap)
        使用指定的hgap / vgap创建一个水平FlowPane布局。
        参数
        hgap - 每个图块之间的水平空间量
        vgap - 每个图块之间的垂直空间量
      • FlowPane

        public FlowPane​(Orientation orientation,
                        double hgap,
                        double vgap)
        使用指定的方向和hgap / vgap创建FlowPane布局。
        参数
        orientation - 瓦片应该流动和包裹的方向
        hgap - 每个图块之间的水平空间量
        vgap - 每个图块之间的垂直空间量
      • FlowPane

        public FlowPane​(Node... children)
        使用hgap / vgap = 0创建一个水平FlowPane布局。
        参数
        children - 此窗格的初始子项集。
        从以下版本开始:
        JavaFX 8.0
      • FlowPane

        public FlowPane​(Orientation orientation,
                        Node... children)
        使用指定的方向创建一个FlowPane布局,并创建hgap / vgap = 0。
        参数
        orientation - 瓦片应该流动和包裹的方向
        children - 此窗格的初始子项集。
        从以下版本开始:
        JavaFX 8.0
      • FlowPane

        public FlowPane​(double hgap,
                        double vgap,
                        Node... children)
        使用指定的hgap / vgap创建一个水平FlowPane布局。
        参数
        hgap - 每个图块之间的水平空间量
        vgap - 每个图块之间的垂直空间量
        children - 此窗格的初始子项集。
        从以下版本开始:
        JavaFX 8.0
      • FlowPane

        public FlowPane​(Orientation orientation,
                        double hgap,
                        double vgap,
                        Node... children)
        使用指定的方向和hgap / vgap创建FlowPane布局。
        参数
        orientation - 瓦片应该流动和包裹的方向
        hgap - 每个图块之间的水平空间量
        vgap - 每个图块之间的垂直空间量
        children - 此窗格的初始子项集。
        从以下版本开始:
        JavaFX 8.0
    • 方法详细信息

      • setMargin

        public static void setMargin​(Node child,
                                     Insets value)
        设置一个flowpane包含的孩子的边距。 如果设置,flowpane将其周围的边距空间布局。 将值设置为null将删除约束。
        参数
        child - child的子节点
        value - 孩子周围的空间
      • getMargin

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

        public static void clearConstraints​(Node child)
        从子节点中删除所有flowpane约束。
        参数
        child - 子节点
      • orientationProperty

        public final ObjectProperty<Orientation> orientationProperty​()
        这个流面的方向。 一个水平的花盆将孩子们从左到右放置在包围在流光溢出的宽度边界处。 垂直的花盆将儿童从上至下放置,以流光飞溅的高度包裹。 默认为水平。
        另请参见:
        getOrientation()setOrientation(Orientation)
      • setOrientation

        public final void setOrientation​(Orientation value)
        设置属性方向的值。
        Property description:
        这个流面的方向。 一个水平的花盆将孩子们从左到右放置在包围在流光溢出的宽度边界处。 垂直的花盆将儿童从上至下放置,以流光飞溅的高度包裹。 默认为水平。
      • getOrientation

        public final Orientation getOrientation​()
        获取属性方向的值。
        Property description:
        这个流面的方向。 一个水平的花盆将孩子们从左到右放置在包围在流光溢出的宽度边界处。 垂直的花盆将儿童从上至下放置,以流光飞溅的高度包裹。 默认为水平。
      • hgapProperty

        public final DoubleProperty hgapProperty​()
        水平流图中每个节点之间的水平空间量或垂直流动叶片中的列间空间量。
        另请参见:
        getHgap()setHgap(double)
      • setHgap

        public final void setHgap​(double value)
        设置属性hgap的值。
        Property description:
        水平流图中每个节点之间的水平空间量或垂直流动叶片中的列间空间量。
      • getHgap

        public final double getHgap​()
        获取属性hgap的值。
        Property description:
        水平流图中每个节点之间的水平空间量或垂直流动叶片中的列间空间量。
      • vgapProperty

        public final DoubleProperty vgapProperty​()
        垂直花式板中每个节点之间的垂直空间量或水平流动叶片中的行间距。
        另请参见:
        getVgap()setVgap(double)
      • setVgap

        public final void setVgap​(double value)
        设置属性vgap的值。
        Property description:
        垂直花式板中每个节点之间的垂直空间量或水平流动叶片中的行间距。
      • getVgap

        public final double getVgap​()
        获取属性vgap的值。
        Property description:
        垂直花式板中每个节点之间的垂直空间量或水平流动叶片中的行间距。
      • prefWrapLengthProperty

        public final DoubleProperty prefWrapLengthProperty​()
        其中内容应包装在水平花式板中的优选宽度或其中内容应包装在垂直透光板中的优选高度。

        此值仅用于计算flowpane的首选大小,并且可能不反映实际的宽度或高度,如果flowpane调整为除了其优选大小之外的其他值,则可能会发生变化。

        应用程序应初始化此值以定义用于包装内容的合理范围。

        另请参见:
        getPrefWrapLength()setPrefWrapLength(double)
      • setPrefWrapLength

        public final void setPrefWrapLength​(double value)
        设置属性prefWrapLength的值。
        Property description:
        其中内容应包装在水平花式板中的优选宽度或其中内容应包装在垂直透光板中的优选高度。

        此值仅用于计算flowpane的首选大小,并且可能不反映实际的宽度或高度,如果flowpane调整为除了其优选大小之外的其他值,则可能会发生变化。

        应用程序应初始化此值以定义用于包装内容的合理范围。

      • getPrefWrapLength

        public final double getPrefWrapLength​()
        获取属性prefWrapLength的值。
        Property description:
        其中内容应包装在水平花式板中的优选宽度或其中内容应包装在垂直透光板中的优选高度。

        此值仅用于计算flowpane的首选大小,并且可能不反映实际的宽度或高度,如果flowpane调整为除了其优选大小之外的其他值,则可能会发生变化。

        应用程序应初始化此值以定义用于包装内容的合理范围。

      • alignmentProperty

        public final ObjectProperty<Pos> alignmentProperty​()
        Flowpane的内容在其宽度和高度之间的整体对齐。

        对于水平流动叶片,每行将使用对齐方式的hpos值在Flowpane的宽度内对齐,并且行将使用对齐方式的vpos值在flowpane的高度内对齐。

        对于垂直的flowpane,每列将使用对齐的vpos值在Flowpane的高度内对齐,并且列将使用alignment的hpos值在Flowpane的宽度内对齐。

        另请参见:
        getAlignment()setAlignment(Pos)
      • setAlignment

        public final void setAlignment​(Pos value)
        设置属性对齐的值。
        Property description:
        Flowpane的内容在其宽度和高度之间的整体对齐。

        对于水平流动叶片,每行将使用对齐方式的hpos值在Flowpane的宽度内对齐,并且行将使用对齐方式的vpos值在flowpane的高度内对齐。

        对于垂直的flowpane,每列将使用对齐的vpos值在Flowpane的高度内对齐,并且列将使用alignment的hpos值在Flowpane的宽度内对齐。

      • getAlignment

        public final Pos getAlignment​()
        获取属性对齐的值。
        Property description:
        Flowpane的内容在其宽度和高度之间的整体对齐。

        对于水平流动叶片,每行将使用对齐方式的hpos值在Flowpane的宽度内对齐,并且行将使用对齐方式的vpos值在flowpane的高度内对齐。

        对于垂直的flowpane,每列将使用对齐的vpos值在Flowpane的高度内对齐,并且列将使用alignment的hpos值在Flowpane的宽度内对齐。

      • setColumnHalignment

        public final void setColumnHalignment​(HPos value)
        设置属性columnHalignment的值。
        Property description:
        垂直花式板的每列内的节点的水平对齐。 水平流路的属性被忽略。
      • getColumnHalignment

        public final HPos getColumnHalignment​()
        获取属性columnHalignment的值。
        Property description:
        垂直花式板的每列内的节点的水平对齐。 水平流路的属性被忽略。
      • rowValignmentProperty

        public final ObjectProperty<VPos> rowValignmentProperty​()
        水平流花线每行内的节点垂直对齐。 如果此属性设置为VPos.BASELINE,则flowpane将始终将小孩的大小调整为其首选高度,而不是扩展高度以填充行高。 对于垂直流路,该属性被忽略。
        另请参见:
        getRowValignment()setRowValignment(VPos)
      • setRowValignment

        public final void setRowValignment​(VPos value)
        设置属性rowValignment的值。
        Property description:
        水平流花线每行内的节点垂直对齐。 如果此属性设置为VPos.BASELINE,则flowpane将始终将小孩的大小调整为其首选高度,而不是扩展高度以填充行高。 对于垂直流路,该属性被忽略。
      • getRowValignment

        public final VPos getRowValignment​()
        获取属性rowValignment的值。
        Property description:
        水平流花线每行内的节点垂直对齐。 如果此属性设置为VPos.BASELINE,则flowpane将始终将小孩的大小调整为其首选高度,而不是扩展高度以填充行高。 对于垂直流路,该属性被忽略。
      • 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 forHeight)
        描述从类复制: Region
        计算给定高度的该区域的首选宽度。 区域子类应该覆盖此方法,以根据其内容和布局策略返回适当的值。 如果子类没有VERTICAL内容偏差,则可以忽略height参数。
        重写:
        computePrefWidthRegion
        参数
        forHeight - 如果首选宽度取决于应该使用的高度
        结果
        计算这个区域的首选宽度
      • computePrefHeight

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

        public void requestLayout​()
        描述从类复制: Parent
        请求在渲染下一个场景之前执行布局传递。 这是异步批量发生一次“脉冲”或动画帧。

        如果此父对象是布局根或非托管,则将直接添加到场景的脏布局列表中,否则将调用requestParentLayout。

        重写:
        requestLayoutParent
      • layoutChildren

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

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

        重写:
        layoutChildrenParent
      • getClassCssMetaData

        public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData​()
        结果
        与此类相关联的CssMetaData可能包括其类的CssMetaData。
        从以下版本开始:
        JavaFX 8.0