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
またはその他のいずれかです。Vbox
aをルート ノードとして配置MenuBar
し、BorderPane` をルートに追加すると、目的の結果が得られるように見えますが、これは奇妙で不必要な回避策のように思えます。
それで、私はここで何が欠けていますか?MenuBar
遺言書は特定の容器でしか見えないというのは本当ですか? BorderPane
この点で aと aの違いは何VBox
ですか? 誰かが説明したり、私が見逃したドキュメントの一部を教えてくれたりしたら、とても感謝しています。