@WannaCreative

Java FX как расположить элемент по центру?

Есть код
package sample;

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.ProgressBar;
import javafx.stage.Stage;

public class Main extends Application
{
    public static void main(String[] args)
    {
        Application.launch(args);
    }

    @Override
    public void start(Stage window)
    {
        Group root = new Group();
        Scene scene = new Scene(root, 800,800);

        ProgressBar prbar = new ProgressBar();
        prbar.setMinSize(250,50);
        root.getChildren().add(prbar);


        window.setScene(scene);
        window.setResizable(false);
        window.setTitle("Title");
        window.show();
    }
}


Как сделать расположение прогресс бара по центру?
  • Вопрос задан
  • 2931 просмотр
Решения вопроса 1
rzoner
@rzoner
StackPane по умолчанию размещает все в центре.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Я бы просто поменял Group на любой другой контейнер, у которого есть метод .setAlignment()
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.ProgressBar;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class Main extends Application
{
    public static void main(String[] args)
    {
        Application.launch(args);
    }

    @Override
    public void start(Stage window)
    {
        VBox root = new VBox(); //◄
        Scene scene = new Scene(root, 800,800);

        ProgressBar prbar = new ProgressBar();
        prbar.setMinSize(250,50);

        root.setAlignment(Pos.CENTER); //◄
        root.getChildren().add(prbar);

        window.setScene(scene);
        window.setResizable(false);
        window.setTitle("Title");
        window.show();
    }
}


WannaCreative: любой элемент(типа кнопки, чеклиста и тому подобного), который ты помещаешь на сцену, должен в итоге лежать в каком-либо контейнере. У контейнеров есть список свойств и методов, которые они поддерживают. В данном случае, setAlignment - задать ориентацию для дочерних элементов.
Мой совет: всегда использовать контейнеры, с ними удобнее работать.
Так и кнопка в нашем случае должна где-то лежать.
Вообще, лучше работать c *.fxml из SceneBuilder'a. Задавать сцены вручную - сомнительная задача, на мой взгляд.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы