JavaFX - Layout Painéis HBox
Se usarmos HBox no layout em nosso aplicativo, todos os nós são configurados em uma única linha horizontal.
A classe chamada HBox do pacote javafx.scene.layoutrepresenta o painel HBox. Esta classe contém cinco propriedades, a saber -
alignment- Esta propriedade representa o alinhamento dos nós nos limites do HBox. Você pode definir o valor para esta propriedade usando o método settersetAlignment().
fillHeight- Esta propriedade é do tipo booleano e ao configurá-la como true, os nós redimensionáveis no HBox são redimensionados para a altura do HBox. Você pode definir o valor para esta propriedade usando o método settersetFillHeight().
spacing- Esta propriedade é do tipo duplo e representa o espaço entre os filhos do HBox. Você pode definir o valor para esta propriedade usando o método settersetSpacing().
Além desses, esta classe também fornece alguns métodos, que são -
setHgrow()- Define a prioridade de crescimento horizontal para o filho quando contido por um HBox. Este método aceita um nó e um valor de prioridade.
setMargin()- Usando este método, você pode definir as margens do HBox. Este método aceita um nó e um objeto da classe Insets (um conjunto de deslocamentos internos para os 4 lados de uma área retangular).
Exemplo
O programa a seguir é um exemplo do layout HBox. Aqui, estamos inserindo um campo de texto e dois botões, play e stop. Isso é feito com um espaçamento de 10 e cada uma tendo margens com dimensões - (10, 10, 10, 10).
Salve este código em um arquivo com o nome 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 e execute o arquivo java salvo no prompt de comando usando os comandos a seguir.
javac HBoxExample.java
java HBoxExample.java
Ao ser executado, o programa acima gera uma janela JavaFX conforme mostrado abaixo.