强制修复 GridPane 中的间隙?

Force fix gaps in a GridPane?

我将 JavaFX 与 FXML 一起使用,我想显示一些 1:1 大小(正方形)的图块。

在我的初始化方法(gluon javafx 移动应用程序)中,我使用下面的代码使我的图块成为二次方。

GridPane 设置了 vgap 和 hgap。因此,如果下面的代码 运行,图块是正方形,但行之间的间隙大于我设置的数字,因为 GridPane 现在大于需要,因为图块在运行时缩小了。有没有办法以任何方式修复行之间的间隙大小或强制 GridPane 随孩子的身高缩小?

我已经在 fxml 中尝试了很多东西,包括间隙、对齐、百分比宽度等...我希望有人能帮助我 :)

primary.getChildren().stream().filter(n -> n instanceof GridPane).forEach(g -> ((GridPane) g).getChildren().stream().filter(n -> n instanceof Button).forEach(b -> ((Button) b).maxHeightProperty().bind(((Button) b).widthProperty())));

我自己找到了答案:

在网格窗格的末尾添加一个空行并设置此 RowConstraints:

<RowConstraints vgrow="NEVER" />
<RowConstraints vgrow="NEVER" />
<RowConstraints vgrow="NEVER" /> 
<RowConstraints vgrow="ALWAYS" />