gpt4 book ai didi

java - 使 AnchorPane 可根据其父项调整大小

转载 作者:行者123 更新时间:2023-11-30 08:34:01 24 4
gpt4 key购买 nike

我有一列有 3 行。每行包含一个图像。此列是 GridPane 的子项。如您在以下 FXML 中所见:

<GridPane GridPane.columnIndex="1">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="7.0" minWidth="0.0" prefWidth="0.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="30.0" minWidth="10.0" prefWidth="30.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<ImageView fitHeight="31.0" fitWidth="29.0" onMousePressed="#addNewUser" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="1" GridPane.rowIndex="0">
<image>
<Image url="@/views/add.png" />
</image>
</ImageView>
<ImageView fitHeight="31.0" fitWidth="29.0" onMousePressed="#removeUser" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="1" GridPane.rowIndex="1">
<image>
<Image url="@/views/remove.png" />
</image>
</ImageView>
<ImageView fitHeight="31.0" fitWidth="29.0" onMousePressed="#editUser" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="1" GridPane.rowIndex="2">
<image>
<Image url="@/views/edit.png" />
</image>
</ImageView>
</children>
</GridPane>

根据我的理解,GridPane 具有固定大小,不会根据父级的大小进行相应更改。 (如果我错了,请随时纠正我)。因此我需要用可以调整大小的 AnchorPane 包裹它们。所以我添加了它并得到了以下内容:

        <children>
<AnchorPane prefHeight="1000.0" prefWidth="900.0" style="-fx-background-color:red" >
<GridPane GridPane.columnIndex="1">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="7.0" minWidth="0.0" prefWidth="0.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="30.0" minWidth="10.0" prefWidth="30.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<ImageView fitHeight="31.0" fitWidth="29.0" onMousePressed="#addNewUser" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="1" GridPane.rowIndex="0">
<image>
<Image url="@/views/add.png" />
</image>
</ImageView>
<ImageView fitHeight="31.0" fitWidth="29.0" onMousePressed="#removeUser" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="1" GridPane.rowIndex="1">
<image>
<Image url="@/views/remove.png" />
</image>
</ImageView>
<ImageView fitHeight="31.0" fitWidth="29.0" onMousePressed="#editUser" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="1" GridPane.rowIndex="2">
<image>
<Image url="@/views/edit.png" />
</image>
</ImageView>
</children>
</GridPane>
</AnchorPane>
</children>
</GridPane>
</children>

现在的结果是所有这 3 个都粘在一起,根本没有调整大小的迹象。为了调试我已将 AnchorPane 的背景设置为红色,它显示高度和宽度都符合应有的水平,但所有这些图像仍然相互粘连。知道我该如何解决这个问题吗?

最佳答案

您的 AnchorPane 占据了所有可用位置,但它的子项没有。这是默认行为,您可以通过将所有 anchor 显式设置为零来更改它。

<GridPane GridPane.columnIndex="1"
AnchorPane.topAnchor="0" AnchorPane.rightAnchor="0"
AnchorPane.bottomAnchor="0" AnchorPane.leftAnchor="0">

同样,如果您不希望您的表格垂直拉伸(stretch),您可以只设置左右 anchor 。

<GridPane GridPane.columnIndex="1" AnchorPane.rightAnchor="0" AnchorPane.leftAnchor="0">

关于java - 使 AnchorPane 可根据其父项调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39113303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com