Javafx: как расположить элементы сцены - PullRequest
0 голосов
/ 09 января 2020

Мне было интересно, как можно центрировать определенные элементы внутри сцены.

Метод, который, как я понял, работает в сцене, вы, например:

  1. хотите найти - TextField

  2. добавить TextField в HBox / VBox

  3. добавить HBox в сцену

  4. Scene show .

Теперь в HBox / VBox позиционирование элементов довольно простое (vbox.setAlignment(Pos.BOTTOM_CENTER)), однако мне было интересно, есть ли возможность делать такие вещи внутри сцены или как позиционирование работает в JavaFX?

1 Ответ

0 голосов
/ 09 января 2020

Вы можете изменить расположение элементов в HBox или VBox в сцене.

Пример hbox.f xml:

<?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);

Также эти ссылки могут быть вам полезны Центральная кнопка JavaFX в VBox , Метод SetAlignment в JavaFX

Если вы пытаетесь получить конкретный узел, который является элементом hbox, вы можете либо присвоить ему идентификатор и ссылаться на него таким образом, либо эта ссылка может быть полезна в противном случае Как получить все узлы в родительском элементе в JavaFX?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...