Javafx:如何定位场景的元素

Javafx: How to position the elements of a scene

我想知道如何将场景中的某些元素居中。

我理解的场景有效的方法,你举例:

  1. 想要搜索 - TextField

  2. 将 TextField 添加到 HBox/VBox

  3. 将HBox添加到场景

  4. 场景展示.

现在在 HBox/VBox 中元素的定位非常简单 (vbox.setAlignment(Pos.BOTTOM_CENTER)),但是我想知道是否有可能在场景中做这样的事情,或者定位在 JavaFX 中是如何工作的?

您可以在场景中更改 HBox 或 VBox 中元素的位置。

示例hbox.fxml:

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.HBox?>

<HBox fx:id="hBox" prefHeight="213.0" prefWidth="473.0" xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml/1" fx:controller="HboxController">
<TextField fx:id="textfield1" alignment="CENTER"/>
</HBox>

示例HboxController.java

    import javafx.fxml.FXML;
    import javafx.fxml.Initializable;
    import javafx.geometry.Pos;
    import javafx.scene.control.TextField;
    import javafx.scene.layout.HBox;

    import java.net.URL;
    import java.util.ResourceBundle;

    public class HboxController implements Initializable {

    @FXML
    private HBox hBox;

    @FXML
    private TextField textfield1;

    @Override
    public void initialize(URL url, ResourceBundle resourceBundle) {
        hBox.setAlignment(Pos.CENTER);
    }
}

这将使 HBox 中的元素居中。

hbox.setAlignment(Pos.Center);

此外,这些 link 可能对您也有帮助 ,

如果您试图获取作为 hbox 元素的特定节点,您可以给它一个 id 并以这种方式引用它,否则这个 link 可能会有帮助 How do I get all nodes in a parent in JavaFX?