JavaFX: как правильно поместить один VBox в другой? - PullRequest
0 голосов
/ 11 июля 2020

По какой-то причине добавление vbox.setAlignment(Pos.BASELINE_CENTER) также выделит дополнительный промежуток между разделителем и vbox_child. Его размер такой же, как у vbox_child. Этот простой код работает не так, как ожидалось:

    VBox vbox_child = new VBox(50.0);
    vbox_child.setBackground(new Background(new BackgroundFill(Color.GREEN, null, null)));
    vbox_child.getChildren().add(new Label("hell1"));
    vbox_child.getChildren().add(new Label("hell2"));
    vbox_child.getChildren().add(new Label("hell3"));

    VBox vbox = new VBox(20.0);
    vbox.setAlignment(Pos.BASELINE_CENTER);
    vbox.setBackground(new Background(new BackgroundFill(Color.ORANGE, null, null)));
    vbox.getChildren().add(new Label("INSERT MODEL"));
    vbox.getChildren().add(new Separator());
    vbox.getChildren().add(vbox_child);

    Scene scene = new Scene(vbox, 400, 400);
    primaryStage.setTitle("VBox Bug");
    primaryStage.setScene(scene);
    primaryStage.show();

Результат:

enter image description here

Meanwhile without vbox.setAlignment(Pos.BASELINE_CENTER) result is correct and matches my expectations:

введите описание изображения здесь

Итак, в чем причина такого поведения? И любые возможные исправления, если я ошибаюсь, или обходные пути, если это проблема JavaFX. Спасибо!

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