JavaFX - Layout TilePane

Se usarmos este painel em nosso aplicativo, todos os nós adicionados a ele serão organizados na forma de ladrilhos de tamanho uniforme. A classe chamadatilePane do pacote javafx.scene.layout representa o TilePane.

Esta classe fornece onze propriedades, que são -

  • alignment - Esta propriedade representa o alinhamento do painel e você pode definir o valor desta propriedade usando o setAlignment() método.

  • hgap - Esta propriedade é do tipo double e representa a lacuna horizontal entre cada ladrilho em uma linha.

  • vgap - Esta propriedade é do tipo double e representa a lacuna vertical entre cada ladrilho em uma linha.

  • orientation - Esta propriedade representa a orientação dos ladrilhos em uma linha.

  • prefColumns - Esta propriedade é do tipo duplo e representa o número preferido de colunas para um painel de ladrilho horizontal.

  • prefRows - Esta propriedade é do tipo duplo e representa o número preferido de linhas para um painel de ladrilho vertical.

  • prefTileHeight - Esta propriedade é do tipo duplo e representa a altura preferencial de cada ladrilho.

  • prefTileWidth - Esta propriedade é do tipo duplo e representa a largura preferida de cada ladrilho.

  • tileHeight - Esta propriedade é do tipo duplo e representa a altura real de cada ladrilho.

  • tileWidth - Esta propriedade é do tipo duplo e representa a largura real de cada ladrilho.

  • tileAlignment - Esta propriedade é do tipo duplo e representa o alinhamento padrão de cada filho em seu bloco.

Exemplo

O programa a seguir é um exemplo do layout do painel de ladrilho. Neste, estamos criando um painel de mosaico que contém 7 botões.

Salve este código em um arquivo com o nome TilePaneExample.java.

import javafx.application.Application; 
import javafx.collections.ObservableList; 
import javafx.geometry.Orientation; 
import javafx.geometry.Pos; 
import javafx.scene.Scene; 
import javafx.scene.control.Button; 
import javafx.scene.layout.TilePane; 
import javafx.stage.Stage;

public class TilePaneExample extends Application { 
   @Override 
   public void start(Stage stage) {    
      //Creating an array of Buttons 
      Button[] buttons = new Button[] { 
         new Button("SunDay"), 
         new Button("MonDay"), 
         new Button("TuesDay"), 
         new Button("WednesDay"), 
         new Button("ThursDay"), 
         new Button("FriDay"), 
         new Button("SaturDay")  
      };   
      //Creating a Tile Pane 
      TilePane tilePane = new TilePane();   
       
      //Setting the orientation for the Tile Pane 
      tilePane.setOrientation(Orientation.HORIZONTAL); 
       
      //Setting the alignment for the Tile Pane 
      tilePane.setTileAlignment(Pos.CENTER_LEFT); 
       
      //Setting the preferred columns for the Tile Pane 
      tilePane.setPrefRows(4);  
      
      //Retrieving the observable list of the Tile Pane 
      ObservableList list = tilePane.getChildren(); 
       
      //Adding the array of buttons to the pane 
      list.addAll(buttons);
	  
      //Creating a scene object 
      Scene scene = new Scene(tilePane);  
      
      //Setting title to the Stage 
      stage.setTitle("Tile 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 TilePaneExample.java 
java TilePaneExample

Ao ser executado, o programa acima gera uma janela JavaFX conforme mostrado abaixo.