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.