Как получить элемент Canvas, чтобы заполнить всю центральную часть BorderPane? - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь создать простое приложение, которое будет иметь строку меню в верхней части 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 работал, но правильно отображалось только меню.

...