JavaFX - FlowPane
Se usarmos o painel de fluxo em nosso aplicativo, todos os nós serão agrupados em um fluxo. Um painel de fluxo horizontal envolve os elementos do painel em sua altura, enquanto um painel de fluxo vertical envolve os elementos em sua largura.
A classe chamada FlowPane do pacote javafx.scene.layoutrepresenta o painel de fluxo. Esta classe contém 7 propriedades, que incluem -
alignment- Esta propriedade representa o alinhamento do conteúdo do painel Fluxo. Você pode definir esta propriedade usando o método settersetAllignment().
columnHalignment - Esta propriedade representa os alinhamentos horizontais de nós em um painel de fluxo vertical.
rowValignment - Esta propriedade representa o alinhamento vertical dos nós em um painel de fluxo horizontal.
Hgap - Esta propriedade é do tipo duplo e representa a lacuna horizontal entre as linhas / colunas de um painel de fluxo.
Orientation - Esta propriedade representa a orientação de um painel de fluxo.
Vgap - Esta propriedade é do tipo duplo e representa a lacuna vertical entre as linhas / colunas de um painel de fluxo.
Exemplo
O programa a seguir é um exemplo do FlowPanelayout. Neste, estamos inserindo quatro botões no painel de fluxo horizontal.
Salve este código em um arquivo com o nome FlowPaneExample.java.
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.FlowPane;
import javafx.scene.shape.Sphere;
import javafx.stage.Stage;
public class FlowPaneExample extends Application {
@Override
public void start(Stage stage) {
//Creating button1
Button button1 = new Button("Button1");
//Creating button2
Button button2 = new Button("Button2");
//Creating button3
Button button3 = new Button("Button3");
//Creating button4
Button button4 = new Button("Button4");
//Creating a Flow Pane
FlowPane flowPane = new FlowPane();
//Setting the horizontal gap between the nodes
flowPane.setHgap(25);
//Setting the margin of the pane
flowPane.setMargin(button1, new Insets(20, 0, 20, 20));
//Retrieving the observable list of the flow Pane
ObservableList list = flowPane.getChildren();
//Adding all the nodes to the flow pane
list.addAll(button1, button2, button3, button4);
//Creating a scene object
Scene scene = new Scene(flowPane);
//Setting title to the Stage
stage.setTitle("Flow Pane 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 FlowPaneExample.java
java FlowPaneExample
Ao ser executado, o programa acima gera uma janela JavaFX conforme mostrado abaixo.