title: how to evenly distribute elements of a JavaFX VBox
body: <p>Im working with a <code>VBox</code> and added three labels to it. The vertical space between the labels is set with <code>setSpacing()</code> method. But it is a fixed value, say <code>20</code>. if i change the value to <code>50</code>, the space will be increased. But it is hard coding.</p>
  
  <p>I want to know whether there is any pre-defined method that i can use so that the labels will be distributed evenly (based on the <code>VBox</code> height). if i resize the window, the labels (i mean, the space between the labels) should be adjusted so that they still are distributed evenly (with same space between any two labels).</p>
  
  <p>As the <code>VBox</code> is set at left side of a <code>BorderPane</code>, i want "<em>lab0</em>" at "<em>Display Line 1</em>", "<em>lab1</em>" at "<em>Display Line 5</em>" and "<em>lab2</em>" at "<em>Display Line 9</em>" (in terms of alignment). In case more <code>TextFields</code> are added, "<em>lab2</em>" should be at last "<em>Display Line X</em>".</p>
  
  <p>my code is here...please mark.</p>
  
  <pre><code>import javafx.application.Application;
  import javafx.geometry.Insets;
  import javafx.geometry.Pos;
  import javafx.scene.Scene;
  import javafx.scene.control.Button;
  import javafx.scene.control.Label;
  import javafx.scene.control.RadioButton;
  import javafx.scene.control.TextField;
  import javafx.scene.control.ToggleGroup;
  import javafx.scene.paint.Color;
  import javafx.scene.shape.Circle;
  import javafx.scene.text.Font;
  import javafx.scene.layout.BorderPane;
  import javafx.scene.layout.FlowPane;
  import javafx.scene.layout.GridPane;
  import javafx.scene.layout.StackPane;
  import javafx.scene.layout.VBox;
  import javafx.scene.layout.HBox;
  import javafx.stage.Stage;
  
  public class MyJavaFx extends Application
  {
      public MyJavaFx()
      {
      }
  
      public void start(Stage primaryStage)
      {
          BorderPane pane = new BorderPane();
          pane.setTop(getRadioButtons());
          pane.setBottom(getPushButtons());
          pane.setLeft(getLeftLabels());
          pane.setRight(getRightLabels());
          pane.setCenter(getTextFields());
          Scene scene=new Scene(pane,1000,800);
  
          primaryStage.setTitle("Even");
          primaryStage.setScene(scene);
          primaryStage.show();
      }
  
      public static void main(String arg[])
      {
          Application.launch(arg);
      }
  
      FlowPane getRadioButtons()
      {
          FlowPane pane = new FlowPane();
          pane.setPadding(new Insets(10,10,10,10));
          pane.setHgap(10);
          RadioButton rb[]=new RadioButton[3];
          ToggleGroup radioGroup = new ToggleGroup();
          for(int i=0;i&lt;rb.length;i++)
          {
              rb[i] = new RadioButton("Flag "+(i+1));
              rb[i].setToggleGroup(radioGroup);
              pane.getChildren().add(rb[i]);
          }
          rb[0].setSelected(true);
          pane.setAlignment(Pos.CENTER);
          return pane;
      }
  
      FlowPane getPushButtons()
      {
          FlowPane pane = new FlowPane();
          pane.setPadding(new Insets(10,30,30,10));
          pane.setHgap(10);
          Button rb[]=new Button[3];
          for(int i=0;i&lt;rb.length;i++)
          {
              rb[i] = new Button("but"+i);
              pane.getChildren().add(rb[i]);
          }
          pane.setAlignment(Pos.BOTTOM_RIGHT);
          return pane;
      }
      VBox getLeftLabels()
      {
          VBox pane = new VBox();
          pane.setPadding(new Insets(10,10,10,10));
          pane.setSpacing(20);
          Label ll[]=new Label[3];
          for(int i=0;i&lt;ll.length;i++)
          {
              ll[i] = new Label("lab"+i);
              pane.getChildren().add(ll[i]);
          }
          ll[0].setAlignment(Pos.TOP_LEFT);
          ll[1].setAlignment(Pos.CENTER_LEFT);
          ll[2].setAlignment(Pos.BOTTOM_LEFT);
          pane.setAlignment(Pos.CENTER_LEFT);
          return pane;
      }
  
      VBox getRightLabels()
      {
          VBox pane = new VBox();
          pane.setPadding(new Insets(10,10,10,10));
          pane.setSpacing(20);
          Label rb[]=new Label[3];
          for(int i=0;i&lt;rb.length;i++)
          {
              rb[i] = new Label("lab"+i);
              pane.getChildren().add(rb[i]);
          }
          pane.setAlignment(Pos.CENTER_RIGHT);
          return pane;
      }
  
      VBox getTextFields()
      {
          VBox pane = new VBox();
          pane.setPadding(new Insets(10,10,10,10));
          pane.setSpacing(2);
          TextField tf[]=new TextField[9];
          for(int i=0;i&lt;tf.length;i++)
          {
              tf[i] = new TextField("Display Line "+(i+1));
  
              pane.getChildren().add(tf[i]);
          }
          pane.setAlignment(Pos.CENTER_RIGHT);
          return pane;
      }
  }
  </code></pre>