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.