HBox: подходит для родительского AnchorPane Javafx, не используя FXML

Как мы можем установить hbox, соответствующий его родительскому AnchorPane, как мы делаем в FXML sceneBuilder.

AnchorPane root = new AnchorPane();
        Scene scene = new Scene(root, 700, 500);
        scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());

        //MenuBar
        MenuBar menuBar=new MenuBar();
        Menu file=new Menu("File");
        MenuItem loadStudentData=new MenuItem("Load Student Data  Ctrl+L");
        MenuItem saveStudentData=new MenuItem("Save Student Data  Ctrl+S");
        MenuItem exit=new MenuItem("Exit       Ctrl+X");
        Menu help=new Menu("Help");
        MenuItem about=new MenuItem("About");

        file.getItems().add(loadStudentData);
        file.getItems().add(saveStudentData);
        file.getItems().add(exit);
        help.getItems().add(about);

        menuBar.getMenus().addAll(file);
        menuBar.getMenus().addAll(help);

        HBox hboxMenu=new HBox();
        hboxMenu.getChildren().add(menuBar);

        HBox.setHgrow(menuBar, Priority.ALWAYS);

        root.getChildren().add(hboxMenu);

        primaryStage.setScene(scene);
        primaryStage.show();

Я хочу, чтобы menuBar получал автоматическое изменение размера при изменении размера окна.

1 ответ

Вы должны установить ограничения AnchorPane для hbox:

    AnchorPane.setLeftAnchor(hboxMenu, 0d);
    AnchorPane.setRightAnchor(hboxMenu, 0d);

(Но предпочтительный способ использования MenuBar ставит его в верхнюю часть BorderPane)

Другие вопросы по тегам