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.