我正在尝试学习 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
仅显示为三个点 (...)。但是当我按下它时它确实打开了ALT+F
,所以它就在那里。
据我了解,一个Menu
项目没有width
或类似的属性,所以不能设置。我怀疑它与我的根节点是 aBorderPane
有关,因为在我发现的所有其他示例中,根节点要么是 aVBox
要么是其他东西。Vbox
当我将 a作为我的根节点,然后将和 BorderPane` 添加到根节点时,我似乎得到了预期的结果MenuBar
——但这对我来说似乎是一个奇怪且不必要的解决方法。
那么我在这里错过了什么?MenuBar
遗嘱是否只会在某些容器中看起来像它应该的样子?BorderPane
在这方面,a和 a 有什么区别VBox
?如果有人可以解释或指出我错过的文档的一部分,我将非常感激。