Моя строка меню не находится в верхней части моего окна?

#java #javafx #menubar

#java #javafx #строка меню

Вопрос:

Привет, я хочу, чтобы моя строка меню находилась в верхней части окна, как и все программное обеспечение?

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

Это код:

 
    @Override
    public void start(Stage primaryStage) throws Exception{

        Image image = new Image("GUI/Images/grass_block_side.png");
        ImageView imageView = new ImageView(image);
        imageView.setPreserveRatio(true);
        imageView.setFitHeight(128);
        FlowPane root = new FlowPane();
        Button btnConvert = new Button("Convert=>");
        MenuBar menuBar = new MenuBar();
        menuBar.setUseSystemMenuBar(true);
        Menu fichier = new Menu("Fichier");
        menuBar.getMenus().add(fichier);
        ListView<Material> ListViewMateriel = new ListView<>();
        ObservableList<Material> items = FXCollections.observableArrayList ();
        ListViewMateriel.setItems(items);
        root.getChildren().addAll(imageView,menuBar,btnConvert,ListViewMateriel);
        root.setPadding(new Insets(15,15,15,15));
        root.setHgap(10);
        root.setVgap(20);
 

Комментарии:

1. Он просто будет выложен, как и любой другой компонент. Если вы поместите его в a FlowPane , он просто будет течь вместе с другими элементами управления. Обычно лучше использовать BorderPane .

2. .. или другими словами: узнайте о макетах 🙂

Ответ №1:

Если бы я мог порекомендовать использовать Scene Builder, там все делается с такой легкостью, что это смешно. Там вы могли бы привязать его к верхней, левой и правой части, и это помогло бы. Просто рекомендация

Комментарии:

1. scenebuilder или нет — главное понять , что делают макеты 😉

2. вы не ошибаетесь. Я чувствую, что легче понять, как макеты работают при сборке сцены, но для каждого есть свои 🙂