JavaFX - Layout Panes VBox
Se usarmos VBox como layout em nosso aplicativo, todos os nós serão configurados em uma única coluna vertical.
A classe chamada VBox do pacote javafx.scene.layoutrepresenta o painel VBox. Esta classe contém cinco propriedades, que são -
alignment- Esta propriedade representa o alinhamento dos nós dentro dos limites do VBox. Você pode definir o valor para esta propriedade usando o método settersetAlignment().
fillHeight- Esta propriedade é do tipo booleano e ao definir como true; os nós redimensionáveis no VBox são redimensionados para a altura do VBox. 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 VBox. Você pode definir o valor para esta propriedade usando o método settersetSpacing().
Além desses, esta classe também fornece os seguintes métodos -
setVgrow()- Define a prioridade de crescimento vertical para o filho quando contido por um VBox. Este método aceita um nó e um valor de prioridade.
setMargin()- Usando este método, você pode definir as margens do VBox. 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 VBoxlayout. Neste, 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 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 e execute o arquivo java salvo no prompt de comando usando os comandos a seguir.
javac VBoxExample.java
java VBoxExample.java
Ao ser executado, o programa acima gera uma janela JavaFX conforme mostrado abaixo.