Reputation: 1
So Im doing some app layout and I need to put two buttons on bottom of window. I want them also to resize whenever I change window size, is it possible to do it in SceneBuilder or modyfing fxml? I cannot find anything that would do it. I know its possible using code to bind widthProperty of parent to child but I want make it without it.
FXML code:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.RadioButton?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.HBox?>
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="200.0" prefWidth="500.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1">
<left>
<AnchorPane prefHeight="400.0" prefWidth="170.0" style="-fx-border-color: black; -fx-border-width: 0 2 0 0;" BorderPane.alignment="CENTER">
<children>
<ComboBox layoutY="2.0" prefHeight="25.0" prefWidth="170.0" />
<RadioButton layoutY="27.0" mnemonicParsing="false" text="RadioButton" />
<RadioButton layoutY="51.0" mnemonicParsing="false" text="RadioButton" />
<RadioButton layoutY="74.0" mnemonicParsing="false" text="RadioButton" />
<Label alignment="TOP_CENTER" layoutY="386.0" maxHeight="15.0" prefHeight="15.0" prefWidth="170.0" style="-fx-background-color: violet;" text="Label" AnchorPane.bottomAnchor="0.0" />
</children>
</AnchorPane>
</left>
<center>
<AnchorPane prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<children>
<TextField layoutY="2.0" prefHeight="165.0" prefWidth="330.0" promptText="WITAM" text="heh" AnchorPane.bottomAnchor="25.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" />
<HBox layoutX="14.0" layoutY="147.0" prefHeight="25.0" prefWidth="320.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0">
<children>
<Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" prefHeight="25.0" text="Button" />
<Button mnemonicParsing="false" text="Button" />
</children>
</HBox>
</children>
</AnchorPane>
</center>
</BorderPane>
Upvotes: 0
Views: 2362
Reputation: 707
You have to set HBox.hgrow
to ALWAYS
or SOMETIMES
(in the node) that the node can grow with the HBox
. And you should ensure that the node can grow, for example the Button has a default maxWidth which is the computed size, so change it.
This is how it should look like:
<HBox>
<children>
<Button maxWidth="1.7976931348623157E308" HBox.hgrow="ALWAYS" text="Button" />
</children>
</HBox>
Upvotes: 1