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.