layout - JavaFX:即使在调整窗口大小时也将所有组件保持在中心

标签 layout javafx fxml scenebuilder

我希望我的所有组件(文本字段、标签等)都保持在固定大小的中心。我正在场景构建器中制作它,当我看到预览时它可以工作,但是当我启动它时,当我调整它的大小时,组件不会留在中心。

请看这里的图片:http://postimg.org/image/r42kvvfbf/

FXML 文件:

<AnchorPane id="AnchorPane" fx:id="root" maxHeight="-1.0" maxWidth="-1.0" minHeight="400.0" minWidth="600.0" prefHeight="-1.0" prefWidth="-1.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" fx:controller="myController">
  <children>
    <GridPane alignment="CENTER" prefHeight="-1.0" prefWidth="-1.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
      <children>
        <VBox alignment="CENTER_LEFT" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="-1.0" prefWidth="-1.0" spacing="10.0" GridPane.columnIndex="0" GridPane.rowIndex="0">
          <children>
            <Label text="ID number" />
            <TextField fx:id="id" maxWidth="-Infinity" minWidth="-Infinity" prefWidth="210.0" promptText="" />
            <Label text="Password" />
            <TextField fx:id="password" maxWidth="-Infinity" minWidth="-Infinity" prefWidth="210.0" promptText="" />
            <HBox id="HBox" alignment="CENTER" spacing="5.0">
              <children>
                <Button mnemonicParsing="false" onAction="#loginAction" text="Вход" textAlignment="CENTER" textOverrun="ELLIPSIS" />
              </children>
            </HBox>
          </children>
          <padding>
            <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
          </padding>
        </VBox>
      </children>
      <columnConstraints>
        <ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
      </columnConstraints>
      <rowConstraints>
        <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
      </rowConstraints>
    </GridPane>
  </children>
</AnchorPane>

我尝试过使用 StackPane 并且也只使用 VBox,但我无法实现我想要的。
请帮忙!

最佳答案

它已解决。也许这可能对其他人有帮助。

看来我正在使用 Group 作为我的场景的根。正如 JavaFX 文档中所说:“如果使用 Group 作为根,则场景图的内容将被场景的宽度和高度剪裁,并且场景大小的更改(如果用户调整舞台大小)不会改变场景图”。

链接:http://docs.oracle.com/javafx/2/api/javafx/scene/Scene.html

关于layout - JavaFX:即使在调整窗口大小时也将所有组件保持在中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23583726/

相关文章:

CSS显示三栏内容

css - css中多于三列

wpf - 使用 Gridsplitter 功能排列项目的项目控件

java - 在 JavaFX 中使标签占据 HBox 上的所有可用空间

JavaFX8 : Single Controller for 1+1popup scene

java - 如何将自定义类正确导入到此 FXML 文件中?

java - 可以超出其容器边界的自定义组件 - 如何?

string - 对 JavafX 中单个 TextArea 中的字符串应用不同的样式

JavaFX 8 - 自定义控件及其子控件

css - 如何更改 JavaFx RadioButton 中的点?