JavaFX - Paneles de diseño HBox

Si usamos HBox en el diseño de nuestra aplicación, todos los nodos se establecen en una sola fila horizontal.

La clase nombrada HBox del paquete javafx.scene.layoutrepresenta el panel HBox. Esta clase contiene cinco propiedades a saber:

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

  • fillHeight- Esta propiedad es de tipo booleano y al establecer esto en verdadero, los nodos de tamaño variable en HBox se redimensionan a la altura de HBox. 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 de HBox. Puede establecer el valor de esta propiedad utilizando el método settersetSpacing().

Además de estos, esta clase también proporciona un par de métodos, que son:

  • setHgrow()- Establece la prioridad de crecimiento horizontal para el niño cuando está contenido por un HBox. Este método acepta un nodo y un valor de prioridad.

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

Ejemplo

El siguiente programa es un ejemplo del diseño de HBox. Aquí, 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 HBoxExample.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.HBox;

public class HBoxExample 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 HBox class  
      HBox hbox = new HBox();    
      
      //Setting the space between the nodes of a HBox pane 
      hbox.setSpacing(10);    
      
      //Setting the margin to the nodes 
      hbox.setMargin(textField, new Insets(20, 20, 20, 20)); 
      hbox.setMargin(playButton, new Insets(20, 20, 20, 20)); 
      hbox.setMargin(stopButton, new Insets(20, 20, 20, 20));  
      
      //retrieving the observable list of the HBox 
      ObservableList list = hbox.getChildren();  
      
      //Adding all the nodes to the observable list (HBox) 
      list.addAll(textField, playButton, stopButton);       
      
      //Creating a scene object
      Scene scene = new Scene(hbox);  
      
      //Setting title to the Stage 
      stage.setTitle("Hbox 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 HBoxExample.java 
java HBoxExample.java

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