简体   繁体   中英

How does Gridpane stretch the full height of AnchorPane in JavaFX? AnchorPane is a root of main window

I want to create an application based on GridPane. For adaptivity I use AnchorPane. The layout stretches well across the width, but at a height it's bad. How to fix?

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.control.ToolBar?>
<?import javafx.scene.control.Button?>

<AnchorPane maxHeight="1000" maxWidth="-Infinity" minHeight="1000" minWidth="-Infinity" prefHeight="1000.0" prefWidth="1200.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="code.WhiteBoardApplication">
   <children>
      <GridPane  maxWidth="-Infinity" minHeight="1000" minWidth="-Infinity" prefHeight="1000.0" prefWidth="1200.0" gridLinesVisible="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
        <columnConstraints>
          <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
          <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
        </columnConstraints>
        <rowConstraints>
          <RowConstraints maxHeight="251.0" minHeight="0.0" prefHeight="66.0" vgrow="SOMETIMES" />
          <RowConstraints maxHeight="311.0" minHeight="10.0" prefHeight="154.0" vgrow="SOMETIMES" />
          <RowConstraints maxHeight="202.0" minHeight="10.0" prefHeight="178.0" vgrow="SOMETIMES" />
        </rowConstraints>
         <children>
            <AnchorPane prefHeight="200.0" prefWidth="200.0" GridPane.columnSpan="2">
               <children>
                  <ToolBar prefHeight="40.0" prefWidth="200.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
                    <items>
                      <Button mnemonicParsing="false" text="Button" />
                    </items>
                  </ToolBar>
               </children></AnchorPane>
            <AnchorPane prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="1" />
            <AnchorPane prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="2" />
            <AnchorPane minHeight="1000.0" prefHeight="1000.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.rowIndex="1" GridPane.rowSpan="2" />
         </children>
      </GridPane>
   </children>
</AnchorPane>

Application

You have set the max-height on the columns rows.

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ToolBar?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>

<AnchorPane maxHeight="1000" maxWidth="-Infinity" minHeight="1000" minWidth="-Infinity" prefHeight="1000.0" prefWidth="1200.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1" fx:controller="code.WhiteBoardApplication">
   <children>
      <GridPane gridLinesVisible="true" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="1000" minWidth="-Infinity" prefHeight="1000.0" prefWidth="1200.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
        <columnConstraints>
          <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
          <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
        </columnConstraints>
        <rowConstraints>
          <RowConstraints minHeight="0.0" prefHeight="66.0" vgrow="SOMETIMES" />
          <RowConstraints minHeight="10.0" prefHeight="154.0" vgrow="SOMETIMES" />
          <RowConstraints minHeight="10.0" prefHeight="178.0" vgrow="SOMETIMES" />
        </rowConstraints>
         <children>
            <AnchorPane prefHeight="200.0" prefWidth="200.0" GridPane.columnSpan="2">
               <children>
                  <ToolBar prefHeight="40.0" prefWidth="200.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
                    <items>
                      <Button mnemonicParsing="false" text="Button" />
                    </items>
                  </ToolBar>
               </children></AnchorPane>
            <AnchorPane prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="1" />
            <AnchorPane prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="2" />
            <AnchorPane minHeight="1000.0" prefHeight="1000.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.rowIndex="1" GridPane.rowSpan="2" />
         </children>
      </GridPane>
   </children>
</AnchorPane>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM