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

Class TilePane

  • All Implemented Interfaces:
    StyleableEventTarget


    public class TilePane
    extends Pane
    TilePane将其孩子们放在一个大小均匀的“瓷砖”网格中。

    水平tilepane(默认)将以行的方式平铺节点,以瓦片宽度包装。 垂直tilepane将在列中平铺节点,以tilepane的高度包装。

    每个“瓷砖”的大小默认为涵盖瓦楞纸板儿童的最大优选宽度和高度所需的大小,并且瓦楞纸板将根据需要重新计算拼贴块的大小,以便在更改时适应其子代的最大优选大小。 应用程序还可以通过将prefTileWidth / prefTileHeight属性设置为除USE_COMPUTED_SIZE(默认值)之外的值来直接控制瓦片的大小。

    应用程序应初始化prefColumns (水平)或prefRows (垂直),以建立tilepane的首选大小(任意默认值为5)。 请注意,prefColumns / prefRows仅用于计算首选大小,可能不反映实际的行数或列数,这可能会随着tilepane的大小调整而改变,并且tile将以实际边界包装。

    对齐属性控制行和列如何在tilepane的边界内对齐,并且默认为Pos.TOP_LEFT。 还可以通过设置tileAlignment来控制各个图块中的节点对齐,默认为Pos.CENTER。

    水平tilepane示例:

       TilePane tile = new TilePane(); tile.setHgap(8); tile.setPrefColumns(4); for (int i = 0; i < 20; i++) { tile.getChildren().add(new ImageView(...)); }  

    垂直TilePane示例:

       TilePane tile = new TilePane(Orientation.VERTICAL); tile.setTileAlignment(Pos.CENTER_LEFT); tile.setPrefRows(10); for (int i = 0; i < 50; i++) { tile.getChildren().add(new ImageView(...)); }  
    TilePane将尝试调整每个孩子的大小以填充其图块。 如果孩子的大小不能填满瓷砖(因为它不是可调整大小或阻止它的大小限制),那么它将使用tileAlignment在瓷砖内对齐。

    可调整范围

    tilepane的父级将在布局期间在tilepane的可调整大小的范围内调整tilepane的大小。 默认情况下,tilepane将基于其内容计算此范围,如下表所示。

    Horizontal width height minimum left/right insets plus the tile width. top/bottom insets plus height required to display all tiles when wrapped at a specified width with a vgap between each row. preferred left/right insets plus prefColumns multiplied by the tile width. top/bottom insets plus height required to display all tiles when wrapped at a specified width with a vgap between each row. maximum Double.MAX_VALUE Double.MAX_VALUE

    Vertical width height minimum left/right insets plus width required to display all tiles when wrapped at a specified height with an hgap between each column. top/bottom insets plus the tile height. preferred left/right insets plus width required to display all tiles when wrapped at the specified height with an hgap between each column. top/bottom insets plus prefRows multiplied by the tile height. maximum Double.MAX_VALUE Double.MAX_VALUE

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

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

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

    默认情况下,TilePane不会剪切其内容,因此如果孩子的pref大小阻止其贴合在其图块中,则儿童的边界可能会延伸到图块之外(也可能是tilepane边界)。 另外,如果tilepane的大小小于其首选大小,则可能无法将所有的tile都放在其边界内,并且内容将在外部扩展。

    可选布局限制

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

    TilePane Constraint Table Constraint Type Description alignment javafx.geometry.Pos The alignment of the child within its tile. margin javafx.geometry.Insets Margin space around the outside of the child.

    例:

       TilePane tilepane = new TilePane(); for (int i = 0; i < 20; i++) { Label title = new Label(imageTitle[i]): Imageview imageview = new ImageView(new Image(imageName[i])); TilePane.setAlignment(label, Pos.BOTTOM_RIGHT); tilepane.getChildren().addAll(title, imageview); }  
    从以下版本开始:
    JavaFX 2.0
    • Property Detail

      • orientation

        public final ObjectProperty<Orientation> orientationProperty
        这个瓦片的方向。 一个水平的瓦楞纸板将瓷砖中的孩子从左到右放置在瓦楞纸板的宽度边界处。 垂直的瓦楞纸板将儿童放在瓷砖中,从上到下,包裹在瓦砾的高度。 默认为水平。
        另请参见:
        getOrientation()setOrientation(Orientation)
      • prefRows

        public final IntegerProperty prefRowsProperty
        垂直瓦片的首选行数。 该值仅用于计算瓦楞纸板的首选尺寸,并且可能不反映实际的行数,如果将tilepane调整为除其首选高度之外的其他值,则可能会改变。 对于水平瓦片,忽略此属性。

        建议应用程序初始化此值作为垂直瓦片。

        另请参见:
        getPrefRows()setPrefRows(int)
      • prefColumns

        public final IntegerProperty prefColumnsProperty
        水平瓦片的首选列数。 该值仅用于计算瓦楞纸板的首选尺寸,并且可能不反映实际的行数,如果将tilepane调整为除其首选高度之外的其他值,则可能会改变。 对于垂直图块,忽略此属性。

        建议应用程序为水平瓦片初始化此值。

        另请参见:
        getPrefColumns()setPrefColumns(int)
      • prefTileWidth

        public final DoubleProperty prefTileWidthProperty
        每个瓷砖的首选宽度。 如果等于USE_COMPUTED_SIZE(默认值),当儿童的首选大小更改以适应最宽的孩子时,tile tile将自动重新计算瓦片宽度wlll。 如果应用程序将此属性设置为大于0的值,则tile将被设置为该宽度,并且tilepane将尝试调整小孩大小以适应该宽度(如果它们可调整大小,并且最小 - 最大宽度范围允许)。
        另请参见:
        getPrefTileWidth()setPrefTileWidth(double)
      • prefTileHeight

        public final DoubleProperty prefTileHeightProperty
        每个瓷砖的首选高度。 如果等于USE_COMPUTED_SIZE(默认值),当儿童的首选大小更改为容纳最高的孩子时,tile tile会自动重新计算瓦片高度wll。 如果应用程序将此属性设置为大于0的值,则tile将被设置为该高度,并且tilepane将尝试调整儿童大小以适应该高度(如果它们可调整大小,并且其最小 - 最大高度范围允许)。
        另请参见:
        getPrefTileHeight()setPrefTileHeight(double)
      • alignment

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

        对于水平瓦片,每行将使用对齐方式的hpos值在tilepane的宽度内对齐,并使用对齐方式的vpos值在各个tilepane的高度内对齐行。

        对于垂直瓦片,每列将使用对齐的vpos值在tilepane的高度内对齐,并且列将使用对齐的hpos值在tilepane的宽度内对齐。

        另请参见:
        getAlignment()setAlignment(Pos)
    • 构造方法详细信息

      • TilePane

        public TilePane​()
        创建一个水平的TilePane布局,其中prefColumn = 5和hgap / vgap = 0。
      • TilePane

        public TilePane​(Orientation orientation)
        创建具有指定方向的TilePane布局,prefColumn / prefRows = 5和hgap / vgap = 0。
        参数
        orientation - 瓦片应该流动和包裹的方向
      • TilePane

        public TilePane​(double hgap,
                        double vgap)
        创建一个水平的TilePane布局,其中prefColumn = 5和指定的hgap / vgap。
        参数
        hgap - 每个图块之间的水平空间量
        vgap - 每个图块之间的垂直空间量
      • TilePane

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

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

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

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

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

      • setAlignment

        public static void setAlignment​(Node node,
                                        Pos value)
        设置小屋的对齐方式,包含在tilepane中。 如果设置,将覆盖其“tile”中的小孩的tilepane的默认对齐方式。 将值设置为null将删除约束。
        参数
        node - node的子节点
        value - 孩子的对齐位置
      • getAlignment

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

        public static void setMargin​(Node node,
                                     Insets value)
        设置小孩的边框,当包含一个瓦楞纸板时。 如果设置,tilepane将布局孩子周围的边距空间。 将值设置为null将删除约束。
        参数
        node - node的子节点
        value - 孩子周围的空间
      • getMargin

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

        public static void clearConstraints​(Node child)
        从子节点中删除所有瓦楞纸板约束。
        参数
        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:
        这个瓦片的方向。 一个水平的瓦楞纸板将瓷砖中的孩子从左到右放置在瓦楞纸板的宽度边界处。 垂直的瓦楞纸板将儿童放在瓷砖中,从上到下,包裹在瓦砾的高度。 默认为水平。
      • prefRowsProperty

        public final IntegerProperty prefRowsProperty​()
        垂直瓦片的首选行数。 该值仅用于计算瓦楞纸板的首选尺寸,并且可能不反映实际的行数,如果将tilepane调整为除其首选高度之外的其他值,则可能会改变。 对于水平瓦片,忽略此属性。

        建议应用程序初始化此值作为垂直瓦片。

        另请参见:
        getPrefRows()setPrefRows(int)
      • setPrefRows

        public final void setPrefRows​(int value)
        设置属性prefRows的值。
        Property description:
        垂直瓦片的首选行数。 该值仅用于计算瓦楞纸板的首选尺寸,并且可能不反映实际的行数,如果将tilepane调整为除其首选高度之外的其他值,则可能会改变。 对于水平瓦片,忽略此属性。

        建议应用程序初始化此值作为垂直瓦片。

      • getPrefRows

        public final int getPrefRows​()
        获取属性prefRows的值。
        Property description:
        垂直瓦片的首选行数。 该值仅用于计算瓦楞纸板的首选尺寸,并且可能不反映实际的行数,如果将tilepane调整为除其首选高度之外的其他值,则可能会改变。 对于水平瓦片,忽略此属性。

        建议应用程序初始化此值作为垂直瓦片。

      • prefColumnsProperty

        public final IntegerProperty prefColumnsProperty​()
        水平瓦片的首选列数。 该值仅用于计算瓦楞纸板的首选尺寸,并且可能不反映实际的行数,如果将tilepane调整为除其首选高度之外的其他值,则可能会改变。 对于垂直图块,忽略此属性。

        建议应用程序为水平瓦片初始化此值。

        另请参见:
        getPrefColumns()setPrefColumns(int)
      • setPrefColumns

        public final void setPrefColumns​(int value)
        设置属性prefColumns的值。
        Property description:
        水平瓦片的首选列数。 该值仅用于计算瓦楞纸板的首选尺寸,并且可能不反映实际的行数,如果将tilepane调整为除其首选高度之外的其他值,则可能会改变。 对于垂直图块,忽略此属性。

        建议应用程序为水平瓦片初始化此值。

      • getPrefColumns

        public final int getPrefColumns​()
        获取属性prefColumns的值。
        Property description:
        水平瓦片的首选列数。 该值仅用于计算瓦楞纸板的首选尺寸,并且可能不反映实际的行数,如果将tilepane调整为除其首选高度之外的其他值,则可能会改变。 对于垂直图块,忽略此属性。

        建议应用程序为水平瓦片初始化此值。

      • prefTileWidthProperty

        public final DoubleProperty prefTileWidthProperty​()
        每个瓷砖的首选宽度。 如果等于USE_COMPUTED_SIZE(默认值),当儿童的首选大小更改以适应最宽的孩子时,tile tile将自动重新计算瓦片宽度wlll。 如果应用程序将此属性设置为大于0的值,则tile将被设置为该宽度,并且tilepane将尝试调整小孩大小以适应该宽度(如果它们可调整大小,并且最小 - 最大宽度范围允许)。
        另请参见:
        getPrefTileWidth()setPrefTileWidth(double)
      • setPrefTileWidth

        public final void setPrefTileWidth​(double value)
        设置属性prefTileWidth的值。
        Property description:
        每个瓷砖的首选宽度。 如果等于USE_COMPUTED_SIZE(默认值),当儿童的首选大小更改以适应最宽的孩子时,tile tile将自动重新计算瓦片宽度wlll。 如果应用程序将此属性设置为大于0的值,则tile将被设置为该宽度,并且tilepane将尝试调整小孩大小以适应该宽度(如果它们可调整大小,并且最小 - 最大宽度范围允许)。
      • getPrefTileWidth

        public final double getPrefTileWidth​()
        获取属性prefTileWidth的值。
        Property description:
        每个瓷砖的首选宽度。 如果等于USE_COMPUTED_SIZE(默认值),当儿童的首选大小更改以适应最宽的孩子时,tile tile将自动重新计算瓦片宽度wlll。 如果应用程序将此属性设置为大于0的值,则tile将被设置为该宽度,并且tilepane将尝试调整小孩大小以适应该宽度(如果它们可调整大小,并且最小 - 最大宽度范围允许)。
      • prefTileHeightProperty

        public final DoubleProperty prefTileHeightProperty​()
        每个瓷砖的首选高度。 如果等于USE_COMPUTED_SIZE(默认值),当儿童的首选大小更改为容纳最高的孩子时,tile tile会自动重新计算瓦片高度wll。 如果应用程序将此属性设置为大于0的值,则tile将被设置为该高度,并且tilepane将尝试调整儿童大小以适应该高度(如果它们可调整大小,并且其最小 - 最大高度范围允许)。
        另请参见:
        getPrefTileHeight()setPrefTileHeight(double)
      • setPrefTileHeight

        public final void setPrefTileHeight​(double value)
        设置属性prefTileHeight的值。
        Property description:
        每个瓷砖的首选高度。 如果等于USE_COMPUTED_SIZE(默认值),当儿童的首选大小更改为容纳最高的孩子时,tile tile会自动重新计算瓦片高度wll。 如果应用程序将此属性设置为大于0的值,则tile将被设置为该高度,并且tilepane将尝试调整儿童大小以适应该高度(如果它们可调整大小,并且其最小 - 最大高度范围允许)。
      • getPrefTileHeight

        public final double getPrefTileHeight​()
        获取属性prefTileHeight的值。
        Property description:
        每个瓷砖的首选高度。 如果等于USE_COMPUTED_SIZE(默认值),当儿童的首选大小更改为容纳最高的孩子时,tile tile会自动重新计算瓦片高度wll。 如果应用程序将此属性设置为大于0的值,则tile将被设置为该高度,并且tilepane将尝试调整儿童大小以适应该高度(如果它们可调整大小,并且其最小 - 最大高度范围允许)。
      • getTileWidth

        public final double getTileWidth​()
        获取属性tileWidth的值。
        Property description:
        每个瓷砖的实际宽度。 此属性为只读。
      • getTileHeight

        public final double getTileHeight​()
        获取属性tileHeight的值。
        Property description:
        每个瓷砖的实际高度。 此属性为只读。
      • setHgap

        public final void setHgap​(double value)
        设置属性hgap的值。
        Property description:
        一行中每个图块之间的水平空间量。
      • getHgap

        public final double getHgap​()
        获取属性hgap的值。
        Property description:
        一行中每个图块之间的水平空间量。
      • setVgap

        public final void setVgap​(double value)
        设置属性vgap的值。
        Property description:
        列中每个图块之间的垂直空间量。
      • getVgap

        public final double getVgap​()
        获取属性vgap的值。
        Property description:
        列中每个图块之间的垂直空间量。
      • alignmentProperty

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

        对于水平瓦片,每行将使用对齐方式的hpos值在tilepane的宽度内对齐,并使用对齐方式的vpos值在各个tilepane的高度内对齐行。

        对于垂直瓦片,每列将使用对齐的vpos值在tilepane的高度内对齐,并且列将使用对齐的hpos值在tilepane的宽度内对齐。

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

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

        对于水平瓦片,每行将使用对齐方式的hpos值在tilepane的宽度内对齐,并使用对齐方式的vpos值在各个tilepane的高度内对齐行。

        对于垂直瓦片,每列将使用对齐的vpos值在tilepane的高度内对齐,并且列将使用对齐的hpos值在tilepane的宽度内对齐。

      • getAlignment

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

        对于水平瓦片,每行将使用对齐方式的hpos值在tilepane的宽度内对齐,并使用对齐方式的vpos值在各个tilepane的高度内对齐行。

        对于垂直瓦片,每列将使用对齐的vpos值在tilepane的高度内对齐,并且列将使用对齐的hpos值在tilepane的宽度内对齐。

      • setTileAlignment

        public final void setTileAlignment​(Pos value)
        设置属性tileAlignment的值。
        Property description:
        每个孩子在其图块中的默认对齐方式。 这可以通过设置孩子的对齐约束来覆盖个别孩子。
      • getTileAlignment

        public final Pos getTileAlignment​()
        获取属性tileAlignment的值。
        Property description:
        每个孩子在其图块中的默认对齐方式。 这可以通过设置孩子的对齐约束来覆盖个别孩子。
      • requestLayout

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

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

        重写:
        requestLayoutParent
      • 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 - 如果首选高度取决于应该使用的宽度
        结果
        该区域计算的优选高度
      • layoutChildren

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

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

        重写:
        layoutChildrenParent
      • getClassCssMetaData

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