Добавление строки меню в панель сетки

Как добавить MenuBar на сцену? Я попытался включить его в свой GridPane (к которому я добавил все остальные элементы), но он никогда не выглядит так, как будто он прикреплен к верхней части окна.

Пример того, как это выглядит.

Есть ли способ решить это?

Я использовал этот код, чтобы разместить его в макете.

 layout.add(menuBar,0,1,10,1);

Где layout — это GridPane, а menuBar — это MenuBar с добавленными пунктами меню.


person MrDaveForDays    schedule 27.08.2018    source источник
comment
Не добавляйте MenuBar к GridPane.   -  person Sedrick    schedule 27.08.2018
comment
Оберните GridPane и MenuBar в другом макете, например. BorderPane   -  person fabian    schedule 27.08.2018


Ответы (1)


Если вы делаете это в коде, попробуйте использовать лучший узел в качестве узла root. Когда у меня есть MenuBar, я люблю использовать VBox. Вы можете добавить свой GridPane после MenuBar.

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

/**
 *
 * @author blj0011
 */
public class JavaFXApplication249 extends Application
{

    @Override
    public void start(Stage primaryStage)
    {
        Menu miFile = new Menu("File");
        MenuBar menuBar = new MenuBar();
        menuBar.getMenus().add(miFile);

        VBox root = new VBox(menuBar);

        Scene scene = new Scene(root, 300, 250);

        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)
    {
        launch(args);
    }

}

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

person Sedrick    schedule 27.08.2018