Как заставить VBox заполнить размер своего родителя

Это правильный способ заставить VBox заполнить своего родителя:

    final Group root = new Group();
    final Scene scene = new Scene(root, 1000, 800, Color.BLACK);

    final VBox c = new VBox();
    c.setAlignment(Pos.TOP_CENTER);
    c.setSpacing(10); 
    c.setFillWidth(true);
    c.getChildren().add(...);
    c.getChildren().add(...);
    c.getChildren().add(...);

    c.prefWidthProperty().bind(scene.widthProperty());
    c.prefHeightProperty().bind(scene.heightProperty());

    root.getChildren().add(c);

    stage.setTitle("blah"); //$NON-NLS-1$
    stage.setScene(scene);
    stage.show();

person cdc    schedule 16.02.2012    source источник


Ответы (2)


Вы можете достичь той же функциональности без использования привязки, используя вместо этого только BorderPane. группы

final BorderPane root = new BorderPane();
// construct your VBox
root.setCenter(vbox);   
person ndrw    schedule 16.02.2012

Вы совершаете распространенную ошибку.

Нет необходимости создавать группу в качестве корня, просто используйте VBox в качестве корня и добавьте его в сцену.

final Scene scene = new Scene(c, 1000, 800, Color.BLACK);
person Weidian Huang    schedule 28.09.2015