网格面板调整大小

3
我希望使用附图中的GridPane布局。请问有人知道如何实现吗?或者我是否选择了错误的布局方式? enter image description here
2个回答

6
您可以使用列和行约束来控制GridPane中不同行和列的增长方式。
方法是将第一列的“hgrow”属性设置为ALWAYS,并将第一行的“vgrow”属性设置为ALWAYS-这意味着左上角单元格将始终扩展。您可以将其他单元格设置为固定宽度/高度,或者它们会根据内容自动扩展,但不会超过其边界。
我已经在AnchorPane内部包含了一个FXML示例,将GridPane锚定到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>

这将导致如图所示的布局,并扩展以填充父容器:

结果布局


我找到了一种方法,可以不使用XML来完成它。谢谢回答我的问题。 - user1958884
我使用了你推荐的方法。 - user1958884
有没有一种通过Java代码设置 HGrow 的方法? - Victor Laerte

0
原来我所需的是使用AnchorPaneGridPane

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接