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.