JavaFX - Layout TilePane

Si usamos este panel en nuestra aplicación, todos los nodos agregados se organizan en forma de mosaicos de tamaño uniforme. La clase nombradatilePane del paquete javafx.scene.layout representa el TilePane.

Esta clase proporciona once propiedades, que son:

  • alignment - Esta propiedad representa la alineación del panel y puede establecer el valor de esta propiedad usando el setAlignment() método.

  • hgap - Esta propiedad es del tipo double y representa el espacio horizontal entre cada mosaico en una fila.

  • vgap - Esta propiedad es del tipo double y representa el espacio vertical entre cada mosaico en una fila.

  • orientation - Esta propiedad representa la orientación de los mosaicos en una fila.

  • prefColumns - Esta propiedad es de tipo doble y representa el número preferido de columnas para un panel de mosaico horizontal.

  • prefRows - Esta propiedad es de tipo doble y representa el número preferido de filas para un panel de mosaico vertical.

  • prefTileHeight - Esta propiedad es de tipo doble y representa la altura preferida de cada teja.

  • prefTileWidth - Esta propiedad es de tipo doble y representa el ancho preferido de cada mosaico.

  • tileHeight - Esta propiedad es de tipo doble y representa la altura real de cada teja.

  • tileWidth - Esta propiedad es de tipo doble y representa el ancho real de cada mosaico.

  • tileAlignment - Esta propiedad es de tipo doble y representa la alineación predeterminada de cada hijo dentro de su mosaico.

Ejemplo

El siguiente programa es un ejemplo del diseño del panel de mosaico. En esto, estamos creando un panel de mosaico que contiene 7 botones.

Guarde este código en un archivo con el nombre 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 y ejecute el archivo java guardado desde el símbolo del sistema utilizando los siguientes comandos.

javac TilePaneExample.java 
java TilePaneExample

Al ejecutarse, el programa anterior genera una ventana JavaFX como se muestra a continuación.