Как изменить размер AnchorPane вместе с окном?

Я использую Scene Builder для разработки макета. Родительский узел — это AnchorPane, который содержит GridPane, размеры которого должны изменяться вместе с ним. Однако AnchorPane перестает изменять размер с помощью GridPane (я думаю). Как я могу изменить его размер, когда окно увеличивается с помощью перетаскивания мышью?

FXML:

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Menu?>
<?import javafx.scene.control.MenuBar?>
<?import javafx.scene.control.MenuItem?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>


<AnchorPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
   <children>
      <GridPane fx:id="gridPane" gridLinesVisible="true" layoutX="10.0" layoutY="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
         <columnConstraints>
            <ColumnConstraints hgrow="ALWAYS" maxWidth="293.0" minWidth="10.0" prefWidth="163.0" />
            <ColumnConstraints hgrow="ALWAYS" maxWidth="437.0" minWidth="10.0" prefWidth="437.0" />
         </columnConstraints>
         <rowConstraints>
            <RowConstraints maxHeight="128.0" minHeight="10.0" prefHeight="29.0" vgrow="NEVER" />
            <RowConstraints maxHeight="351.0" minHeight="10.0" prefHeight="351.0" vgrow="ALWAYS" />
         </rowConstraints>
         <children>
            <MenuBar GridPane.columnSpan="2147483647" GridPane.valignment="TOP">
               <menus>
                  <Menu mnemonicParsing="false" text="File">
                     <items>
                        <MenuItem mnemonicParsing="false" text="Close" />
                     </items>
                  </Menu>
                  <Menu mnemonicParsing="false" text="Edit">
                     <items>
                        <MenuItem mnemonicParsing="false" text="Delete" />
                     </items>
                  </Menu>
                  <Menu mnemonicParsing="false" text="Help">
                     <items>
                        <MenuItem mnemonicParsing="false" text="About" />
                     </items>
                  </Menu>
               </menus>
            </MenuBar>
            <ScrollPane fx:id="mapViewScrollPane" fitToHeight="true" fitToWidth="true" prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.hgrow="ALWAYS" GridPane.rowIndex="1" GridPane.vgrow="ALWAYS">
               <content>
                  <ImageView fx:id="mapView" fitWidth="750.0" pickOnBounds="true" preserveRatio="true" />
               </content>
            </ScrollPane>
         </children>
      </GridPane>
   </children>
</AnchorPane>

person CptHowdyRD0    schedule 28.10.2017    source источник
comment
Как насчет использования BorderPane вместо AnchorPane и обеспечения того, чтобы HGROW и VGROW всегда были установлены?   -  person kvr    schedule 29.10.2017
comment
Ваша якорная панель изменяет размер окна, предполагая, что это корень сцены. Однако панель привязки имеет только один дочерний узел, панель сетки, и вы явно предотвращаете ее рост, указывая максимальную ширину для каждого столбца и максимальную высоту для каждой строки. Таким образом, область сетки не может увеличиваться, и вы видите содержимое, имеющее максимальный размер.   -  person James_D    schedule 29.10.2017
comment
@James_D Спасибо, это исправило! Если хотите, можете поставить это как ответ, я отмечу.   -  person CptHowdyRD0    schedule 29.10.2017


Ответы (1)


person    schedule
comment
Где бы это применялось? Не могли бы вы уточнить? - person Michael Piefel; 09.01.2021