Я пытаюсь создать простое приложение, которое будет иметь строку меню в верхней части BorderPane (это работает) и Canvas, который занимает оставшееся пространство. Я использую BorderPane, так как он, кажется, лучше всего соответствует тому, что я пытаюсь сделать. В настоящее время элемент Canvas всегда имеет ширину 0 пикселей, и это явно не то, что мне нужно.
Я пытался привязать размер холста к BorderPane, помещая Canvas в группы VBox / HBox, помещая его вa AnchorPane, установка поля.
<BorderPane xmlns="http://javafx.com/javafx"
xmlns:fx="http://javafx.com/fxml"
fx:id="border"
fx:controller="BoardMenuController"
prefHeight="400.0" prefWidth="600.0">
<top>
<MenuBar>
<menus>
<Menu text="File">
<MenuItem text="New"/>
<MenuItem text="Open"/>
<MenuItem text="Save"/>
<MenuItem text="Save As"/>
<SeparatorMenuItem/>
<MenuItem text="Exit" onAction="#onExitClicked"/>
</Menu>
<Menu text="Edit">
<MenuItem text="Hint"/>
<MenuItem text="Shuffle"/>
</Menu>
</menus>
</MenuBar>
</top>
<center>
<Canvas fx:id="canvas"/>
</center>
</BorderPane>
Чтобы файл FXML работал, но правильно отображалось только меню.