gridpane调整大小

use*_*884 3 resize javafx constraints layout-manager

我想要一个网格窗格布局,如附图中所示.任何人都知道如何使用或我使用错误的布局? 在此输入图像描述

ajs*_*ort 6

您可以使用列和行约束控制GridPane中不同行和列的增长方式.

这样做的方法是hgrow将第一列的属性设置为ALWAYS,vgrow将第一行的属性设置为ALWAYS - 这意味着左上角的单元格将始终展开.您可以将其他单元格设置为固定的宽度/高度,否则它们将展开以适应其内容而不再适用.

我在AnchorPane中包含了一个带有GridPane的FXML示例,并锚定到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>
Run Code Online (Sandbox Code Playgroud)

这将导致此处显示的布局,并展开以填充父窗格:

结果布局