JavaFX - Layout TilePane

Se usiamo questo pannello nella nostra applicazione, tutti i nodi aggiunti ad esso sono disposti sotto forma di tessere di dimensioni uniformi. La classe denominatatilePane del pacchetto javafx.scene.layout rappresenta il TilePane.

Questa classe fornisce undici proprietà, che sono:

  • alignment - Questa proprietà rappresenta l'allineamento del riquadro ed è possibile impostare il valore di questa proprietà utilizzando il setAlignment() metodo.

  • hgap - Questa proprietà è del tipo double e rappresenta lo spazio orizzontale tra ogni piastrella di seguito.

  • vgap - Questa proprietà è del tipo double e rappresenta lo spazio verticale tra ciascuna piastrella di seguito.

  • orientation - Questa proprietà rappresenta l'orientamento delle tessere in una riga.

  • prefColumns - Questa proprietà è di tipo doppio e rappresenta il numero di colonne preferito per un riquadro affiancato orizzontale.

  • prefRows - Questa proprietà è di tipo doppio e rappresenta il numero di righe preferito per un riquadro affiancato verticale.

  • prefTileHeight - Questa proprietà è di tipo doppio e rappresenta l'altezza preferita di ogni piastrella.

  • prefTileWidth - Questa proprietà è di tipo doppio e rappresenta la larghezza preferita di ogni piastrella.

  • tileHeight - Questa proprietà è di tipo doppio e rappresenta l'altezza effettiva di ogni piastrella.

  • tileWidth - Questa proprietà è di tipo doppio e rappresenta la larghezza effettiva di ogni piastrella.

  • tileAlignment - Questa proprietà è di tipo doppio e rappresenta l'allineamento predefinito di ogni figlio all'interno del suo riquadro.

Esempio

Il seguente programma è un esempio del layout del riquadro delle tessere. In questo, stiamo creando un riquadro delle tessere che contiene 7 pulsanti.

Salva questo codice in un file con il 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); 
   } 
}

Compilare ed eseguire il file java salvato dal prompt dei comandi utilizzando i seguenti comandi.

javac TilePaneExample.java 
java TilePaneExample

All'esecuzione, il programma di cui sopra genera una finestra JavaFX come mostrato di seguito.