HBox FXML中的JavaFX调整大小按钮

问题描述:

因此,我做了一些应用程序布局,我需要把两个按钮放在窗口的底部。我希望它们在我更改窗口大小时也调整大小,是否可以在SceneBuilder中执行或者调用fxml?我找不到任何可以做到的事情。我知道它可能使用代码绑定父母的widthProperty到孩子,但我想让它没有它。HBox FXML中的JavaFX调整大小按钮

FXML代码:

<?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> 

你必须设置HBox.hgrowALWAYSSOMETIMES(在节点)的节点可以与HBox增长。并且你应该确保节点可以增长,例如Button有一个默认的maxWidth,它是计算出来的大小,所以改变它。

这是应该的样子:

<HBox> 
    <children> 
     <Button maxWidth="1.7976931348623157E308" HBox.hgrow="ALWAYS" text="Button" /> 
    </children> 
</HBox>