Stretching a block to the full height of the Java FX parent


There is such a FXML:

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

<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>

<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="1280.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.supply.department.Controller">
  <columnConstraints>
    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
  </columnConstraints>
  <rowConstraints>
    <RowConstraints />
      <RowConstraints maxHeight="644.0" minHeight="10.0" prefHeight="644.0" valignment="CENTER" vgrow="ALWAYS" />
  </rowConstraints>
   <children>
      <TabPane tabClosingPolicy="UNAVAILABLE" GridPane.halignment="CENTER" GridPane.hgrow="ALWAYS" GridPane.rowIndex="1" GridPane.valignment="BASELINE" GridPane.vgrow="ALWAYS">
        <tabs>
          <Tab closable="false" text="Приход">
               <content>
                  <GridPane alignment="CENTER" gridLinesVisible="true" hgap="100.0" vgap="100.0">
                    <columnConstraints>
                      <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
                    </columnConstraints>
                    <rowConstraints>
                      <RowConstraints maxHeight="585.5" minHeight="10.0" percentHeight="100.0" prefHeight="358.5" valignment="CENTER" vgrow="ALWAYS" />
                    </rowConstraints>
                     <children>
                        <TableView fx:id="tableView" fixedCellSize="0.0" prefHeight="763.0" prefWidth="1907.0" tableMenuButtonVisible="true" GridPane.hgrow="ALWAYS" GridPane.vgrow="ALWAYS">
                          <columns>
                            <TableColumn prefWidth="-1.0" text="№" />
                            <TableColumn prefWidth="-1.0" text="Дата" />
                              <TableColumn prefWidth="-1.0" text="№ приходнго документа" />
                              <TableColumn prefWidth="-1.0" text="№ и дата доверенности" />
                              <TableColumn prefWidth="-1.0" text="ФИО" />
                              <TableColumn prefWidth="-1.0" text="Поставщик" />
                              <TableColumn prefWidth="-1.0" text="Наименование" />
                              <TableColumn prefWidth="-1.0" text="Группа материалов" />
                              <TableColumn prefWidth="-1.0" text="Ед. измерения" />
                              <TableColumn prefWidth="-1.0" text="Кол-во" />
                              <TableColumn prefWidth="-1.0" text="Цена" />
                              <TableColumn prefWidth="-1.0" text="Сумма" />
                              <TableColumn prefWidth="-1.0" text="Код закупки" />
                              <TableColumn prefWidth="-1.0" text="Группа бух.учета" />
                              <TableColumn prefWidth="-1.0" text="Дополнительные параметры" />
                          </columns>
                           <columnResizePolicy>
                              <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
                           </columnResizePolicy>
                        </TableView>
                     </children>
                  </GridPane>
               </content>
          </Tab>
          <Tab closable="false" text="Расход">
            <content>
              <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
            </content>
          </Tab>
        </tabs>
      </TabPane>
      <MenuBar>
        <menus>
          <Menu mnemonicParsing="false" text="Файл">
            <items>
              <MenuItem mnemonicParsing="false" text="Close" />
            </items>
          </Menu>
          <Menu mnemonicParsing="false" text="Правка">
            <items>
              <MenuItem mnemonicParsing="false" text="Delete" />
            </items>
          </Menu>
          <Menu mnemonicParsing="false" text="Справка">
            <items>
              <MenuItem mnemonicParsing="false" text="About" />
            </items>
          </Menu>
        </menus>
      </MenuBar>
   </children>
</GridPane>

When the application starts, the table does not reach the end of the window:

enter a description of the image here

Tell me how to make the table occupy the entire height of the parent GridPane?

Author: Tsyklop, 2018-06-13

2 answers

Set the maximum height of the row.

 <RowConstraints maxHeight="1.7976931348623157E308" ...

This will set the maximum height of the element to the maximum available height. Since you have a certain value, the height of the row can not be greater than the specified value

 1
Author: Serhii Dikobrazko, 2018-06-13 19:32:01

Maybe this is better? that is, do not use GridPane and instead work with an AnchorPane and sideways...

    <?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.Tab?>
<?import javafx.scene.control.TabPane?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.layout.VBox?>
<VBox xmlns="http://javafx.com/javafx/9.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.supply.department.Controller">
   <children>
      <MenuBar>
        <menus>
          <Menu mnemonicParsing="false" text="Файл">
            <items>
              <MenuItem mnemonicParsing="false" text="Close" />
            </items>
          </Menu>
          <Menu mnemonicParsing="false" text="Правка">
            <items>
              <MenuItem mnemonicParsing="false" text="Delete" />
            </items>
          </Menu>
          <Menu mnemonicParsing="false" text="Справка">
            <items>
              <MenuItem mnemonicParsing="false" text="About" />
            </items>
          </Menu>
        </menus>
      </MenuBar>
      <AnchorPane>
         <children>
            <TabPane prefHeight="700.0" prefWidth="1280.0" tabClosingPolicy="UNAVAILABLE" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
              <tabs>
                <Tab closable="false" text="Приход">
                     <content>
                        <GridPane alignment="CENTER" gridLinesVisible="true" hgap="100.0" vgap="100.0">
                          <columnConstraints>
                            <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
                          </columnConstraints>
                          <rowConstraints>
                            <RowConstraints maxHeight="585.5" minHeight="10.0" percentHeight="100.0" prefHeight="358.5" valignment="CENTER" vgrow="ALWAYS" />
                          </rowConstraints>
                        </GridPane>
                     </content>
                     <content>
                    <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
                           <children>
                              <TableView fx:id="tableView" fixedCellSize="0.0" prefHeight="763.0" prefWidth="1907.0" tableMenuButtonVisible="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
                                <columns>
                                  <TableColumn prefWidth="-1.0" text="№" />
                                  <TableColumn prefWidth="-1.0" text="Дата" />
                                    <TableColumn prefWidth="-1.0" text="№ приходнго документа" />
                                    <TableColumn prefWidth="-1.0" text="№ и дата доверенности" />
                                    <TableColumn prefWidth="-1.0" text="ФИО" />
                                    <TableColumn prefWidth="-1.0" text="Поставщик" />
                                    <TableColumn prefWidth="-1.0" text="Наименование" />
                                    <TableColumn prefWidth="-1.0" text="Группа материалов" />
                                    <TableColumn prefWidth="-1.0" text="Ед. измерения" />
                                    <TableColumn prefWidth="-1.0" text="Кол-во" />
                                    <TableColumn prefWidth="-1.0" text="Цена" />
                                    <TableColumn prefWidth="-1.0" text="Сумма" />
                                    <TableColumn prefWidth="-1.0" text="Код закупки" />
                                    <TableColumn prefWidth="-1.0" text="Группа бух.учета" />
                                    <TableColumn prefWidth="-1.0" text="Дополнительные параметры" />
                                </columns>
                                 <columnResizePolicy>
                                    <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
                                 </columnResizePolicy>
                              </TableView>
                           </children>
                        </AnchorPane>
                     </content>
                </Tab>
                <Tab closable="false" text="Расход" />
              </tabs>
            </TabPane>
         </children>
      </AnchorPane>
   </children>
</VBox>
 1
Author: Muzaffar Rasulov, 2018-06-13 20:02:46