JavaFX - Paneles de diseño VBox

Si usamos VBox como diseño en nuestra aplicación, todos los nodos se establecen en una sola columna vertical.

La clase nombrada VBox del paquete javafx.scene.layoutrepresenta el panel VBox. Esta clase contiene cinco propiedades, que son:

  • alignment- Esta propiedad representa la alineación de los nodos dentro de los límites del VBox. Puede establecer el valor de esta propiedad mediante el método settersetAlignment().

  • fillHeight- Esta propiedad es de tipo booleano y al establecer esto como verdadero; los nodos de tamaño variable en VBox se redimensionan a la altura de VBox. Puede establecer el valor de esta propiedad utilizando el método settersetFillHeight().

  • spacing- Esta propiedad es de tipo doble y representa el espacio entre los hijos del VBox. Puede establecer el valor de esta propiedad utilizando el método settersetSpacing().

Además de estos, esta clase también proporciona los siguientes métodos:

  • setVgrow()- Establece la prioridad de crecimiento vertical para el niño cuando está contenido en un VBox. Este método acepta un nodo y un valor de prioridad.

  • setMargin()- Con este método, puede establecer márgenes para el VBox. Este método acepta un nodo y un objeto de la clase Insets (un conjunto de compensaciones internas para los 4 lados de un área rectangular)

Ejemplo

El siguiente programa es un ejemplo del VBoxdiseño. En esto, estamos insertando un campo de texto y dos botones, reproducir y detener. Esto se hace con un espaciado de 10 y cada uno tiene márgenes con dimensiones - (10, 10, 10, 10).

Guarde este código en un archivo con el nombre VBoxExample.java.

import javafx.application.Application; 
import javafx.collections.ObservableList; 
import javafx.geometry.Insets; 
import javafx.scene.Scene; 
import javafx.scene.control.Button; 
import javafx.scene.control.TextField; 
import javafx.stage.Stage; 
import javafx.scene.layout.VBox; 
         
public class VBoxExample extends Application { 
   @Override 
   public void start(Stage stage) {       
      //creating a text field 
      TextField textField = new TextField();       
      
      //Creating the play button 
      Button playButton = new Button("Play");
	   
      //Creating the stop button 
      Button stopButton = new Button("stop"); 
      
      //Instantiating the VBox class  
      VBox vBox = new VBox();   
      
      //Setting the space between the nodes of a VBox pane 
      vBox.setSpacing(10);   
      
      //Setting the margin to the nodes 
      vBox.setMargin(textField, new Insets(20, 20, 20, 20));  
      vBox.setMargin(playButton, new Insets(20, 20, 20, 20)); 
      vBox.setMargin(stopButton, new Insets(20, 20, 20, 20));  
      
      //retrieving the observable list of the VBox 
      ObservableList list = vBox.getChildren(); 
      
      //Adding all the nodes to the observable list 
      list.addAll(textField, playButton, stopButton);       
      
      //Creating a scene object 
      Scene scene = new Scene(vBox);  
      
      //Setting title to the Stage 
      stage.setTitle("Vbox Example"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   } 
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Compile y ejecute el archivo java guardado desde el símbolo del sistema utilizando los siguientes comandos.

javac VBoxExample.java 
java VBoxExample.java

Al ejecutarse, el programa anterior genera una ventana JavaFX como se muestra a continuación.