JavaFX を学習しようとしていますMenusが、MenuBar. 最小限の例を次に示します。
public void start(Stage mainStage) throws Exception {
BorderPane root = new BorderPane();
Scene scene = new Scene(root, 1200, 1000, Color.WHITE);
MenuBar menuBar = new MenuBar();
Menu menuFile = new Menu("_File");
menuBar.getMenus().add(menuFile);
MenuItem add = new MenuItem("_New");
menuFile.getItems().add(add);
root.getChildren().add(menuBar);
menuBar.prefWidthProperty().bind(mainStage.widthProperty());
mainStage.setScene(scene);
mainStage.show();
}
このアプリケーションは起動しますが、MenuのMenuBarは 3 つのドット (...) としてのみ表示されます。ただし、 を押すALT+Fと開くので、そこにあります。
私が理解していることから、Menuアイテムには属性がない、widthまたは類似の属性がないため、設定できません。ルートノードが であることに関係があると思われます。BorderPane他のすべての例で動作することがわかったので、ルートは aVBoxまたはその他のいずれかです。Vboxaをルート ノードとして配置MenuBarし、BorderPane` をルートに追加すると、目的の結果が得られるように見えますが、これは奇妙で不必要な回避策のように思えます。
それで、私はここで何が欠けていますか?MenuBar遺言書は特定の容器でしか見えないというのは本当ですか? BorderPaneこの点で aと aの違いは何VBoxですか? 誰かが説明したり、私が見逃したドキュメントの一部を教えてくれたりしたら、とても感謝しています。