网格盘大小调整

问题描述 投票:3回答:2

我想要一个网格窗格布局,如附图所示。有谁知道怎么做,还是我用错了布局?enter image description here

resize constraints javafx layout-manager
2个回答
6
投票

你可以使用列和行约束来控制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>

这就导致了这里的布局,并扩展到填满父窗格。

Resulting Layout


0
投票

原来我想做的事情需要... ... AnchorPaneGridPane.

© www.soinside.com 2019 - 2024. All rights reserved.