我想要一个网格窗格布局,如附图所示。有谁知道怎么做,还是我用错了布局?
你可以使用列和行约束来控制GridPane中不同行和列的增长方式。
做到这一点的方法是设置 hgrow
属性为ALWAYS,而第一列的 vgrow
属性为ALWAYS--这意味着左上角的单元格将始终展开。你可以将其他单元格设置为固定的宽度和高度,否则它们将展开以适应它们的内容,不再展开。
我已经包含了一个FXML的例子,GridPane在AnchorPane里面,并且锚定在AnchorPane的顶部、左下角和右侧。这意味着GridPane将增长以填充父AnchorPane。
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.paint.*?>
<AnchorPane id="AnchorPane" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml">
<children>
<GridPane AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<columnConstraints>
<ColumnConstraints hgrow="ALWAYS" />
<ColumnConstraints prefWidth="150" />
</columnConstraints>
<rowConstraints>
<RowConstraints vgrow="ALWAYS" />
<RowConstraints prefHeight="150" />
</rowConstraints>
</GridPane>
</children>
</AnchorPane>
这就导致了这里的布局,并扩展到填满父窗格。
原来我想做的事情需要... ... AnchorPane
和 GridPane
.