JavaFX:如何正确地将一个VBox放入另一个?

时间:2020-07-10 21:45:52

标签: javafx

由于某些原因,添加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

同时没有vbox.setAlignment(Pos.BASELINE_CENTER)结果是正确的,符合我的期望:

enter image description here

那么,此行为的原因是什么?如果我错了,可以进行任何修复,如果这是JavaFX的问题,则可以采取解决方法。 谢谢!

0 个答案:

没有答案