JavaFX Hbox кнопок не будет заполнять пространство нижнего контейнера в BorderPane - PullRequest
0 голосов
/ 20 сентября 2018

Я пытаюсь заполнить нижний контейнер границы окна кнопками.Согласно документации JavaFX, кнопки должны быть установлены в prefHeight, а ширина должна заполнять контейнер.Я установил для всех дочерних элементов максимальную ширину бесконечности, поэтому я знаю, что максимальная ширина для детей не блокирует изменение размера.Ниже см. Fxml.

 <BorderPane>
        <top>
            <VBox>
                <Label text="This is a message"/>
                <HBox>
                    <TextField>Text 1</TextField>
                    <TextField>Text 2</TextField>
                    <TextField>Text 3</TextField>
                </HBox>
            </VBox>
        </top>

        <center>
            <TableView>

            </TableView>
        </center>

        <bottom>
            <HBox maxWidth="Infinity">
                <Button maxWidth="Infinity">Button 1</Button>
                <Button maxWidth="Infinity">Button 2</Button>
                <Button maxWidth="Infinity">Button 3</Button>
                <Button maxWidth="Infinity">Button 4</Button>
                <Button maxWidth="Infinity">Button 5</Button>
            </HBox>
        </bottom>

    </BorderPane>

1 Ответ

0 голосов
/ 20 сентября 2018

hgrow установит приоритет горизонтального роста для дочернего узла.П

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

<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<BorderPane xmlns="http://javafx.com/javafx/8">
    <top>
        <VBox>
           <children>
               <Label text="This is a message" />
               <HBox>
                  <children>
                      <TextField>Text 1</TextField>
                      <TextField>Text 2</TextField>
                      <TextField>Text 3</TextField>
                  </children>
               </HBox>
           </children>
        </VBox>
    </top>

    <center>
        <TableView>

        </TableView>
    </center>

    <bottom>
        <HBox maxWidth="Infinity">
           <children>
               <Button maxWidth="Infinity" HBox.hgrow="ALWAYS">Button 1</Button>
               <Button maxWidth="Infinity" HBox.hgrow="ALWAYS">Button 2</Button>
               <Button maxWidth="Infinity" HBox.hgrow="ALWAYS">Button 3</Button>
               <Button maxWidth="Infinity" HBox.hgrow="ALWAYS">Button 4</Button>
               <Button maxWidth="Infinity" HBox.hgrow="ALWAYS">Button 5</Button>
           </children>
        </HBox>
    </bottom>

</BorderPane>
...