如何在 JavaFX FXML 中公平地分布 VBox 中的节点
How equitably distribute node in VBox in JavaFX FXML
如何在一个VBox中平均分配几个部分?
换句话说,我有这个 FXML 代码:
<Tab text="SOO properties">
<content>
<VBox>
<HBox>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Name" />
<TextField />
</HBox>
<HBox>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Number of MobileEntity slots" />
<TextField />
</HBox>
<HBox>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="MobileEntity buffer size" />
<TextField />
</HBox>
<HBox>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Connections number" />
<TextField />
</HBox>
<HBox>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Peripherals number" />
<TextField />
</HBox>
</VBox>
</content>
</Tab>
该产品此视图:
我怎样才能得到这样的东西?
根据 GoXr3Plus 的说法,GridPane 在这种情况下效果很好:
<Tab text="SOO properties">
<GridPane prefHeight="230.0" prefWidth="358.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.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 minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Name" />
<TextField GridPane.columnIndex="1" />
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Number of MobileEntity slots" GridPane.rowIndex="1" />
<TextField GridPane.columnIndex="1" GridPane.rowIndex="1" />
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="MobileEntity buffer size" GridPane.rowIndex="2" />
<TextField GridPane.columnIndex="1" GridPane.rowIndex="2" />
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Connections number" GridPane.rowIndex="3" />
<TextField GridPane.columnIndex="1" GridPane.rowIndex="3" />
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Peripherals number" GridPane.rowIndex="4" />
<TextField GridPane.columnIndex="1" GridPane.rowIndex="4" />
</children>
</GridPane>
</Tab>
生成此视图:
如何在一个VBox中平均分配几个部分? 换句话说,我有这个 FXML 代码:
<Tab text="SOO properties">
<content>
<VBox>
<HBox>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Name" />
<TextField />
</HBox>
<HBox>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Number of MobileEntity slots" />
<TextField />
</HBox>
<HBox>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="MobileEntity buffer size" />
<TextField />
</HBox>
<HBox>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Connections number" />
<TextField />
</HBox>
<HBox>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Peripherals number" />
<TextField />
</HBox>
</VBox>
</content>
</Tab>
该产品此视图:
我怎样才能得到这样的东西?
根据 GoXr3Plus 的说法,GridPane 在这种情况下效果很好:
<Tab text="SOO properties">
<GridPane prefHeight="230.0" prefWidth="358.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.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 minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Name" />
<TextField GridPane.columnIndex="1" />
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Number of MobileEntity slots" GridPane.rowIndex="1" />
<TextField GridPane.columnIndex="1" GridPane.rowIndex="1" />
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="MobileEntity buffer size" GridPane.rowIndex="2" />
<TextField GridPane.columnIndex="1" GridPane.rowIndex="2" />
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Connections number" GridPane.rowIndex="3" />
<TextField GridPane.columnIndex="1" GridPane.rowIndex="3" />
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Peripherals number" GridPane.rowIndex="4" />
<TextField GridPane.columnIndex="1" GridPane.rowIndex="4" />
</children>
</GridPane>
</Tab>
生成此视图: