JavaFX - Stackpane de diseño

Si usamos el Panel de pila, los nodos se colocan encima de otro, como en la pila. El nodo agregado primero se coloca en la parte inferior de la pila y el siguiente nodo se coloca encima.

La clase nombrada StackPane del paquete javafx.scene.layoutrepresenta el StackPane. Esta clase contiene una única propiedad denominada alineación. Esta propiedad representa la alineación de los nodos dentro del panel de la pila.

Además de estos, esta clase también proporciona un método llamado setMargin(). Este método se utiliza para establecer el margen para el nodo dentro del panel de la pila.

Ejemplo

El siguiente programa es un ejemplo del StackPanediseño. En esto, estamos insertando un círculo, una esfera y un texto en el mismo orden.

Guarde este código en un archivo con el nombre StackPaneExample.java.

import javafx.application.Application; 
import javafx.collections.ObservableList; 
import javafx.geometry.Insets; 

import javafx.scene.Scene; 
import javafx.scene.layout.StackPane; 
import javafx.scene.paint.Color; 
import javafx.scene.shape.Circle; 
import javafx.scene.shape.Sphere;
 
import javafx.scene.text.Font; 
import javafx.scene.text.FontWeight; 
import javafx.scene.text.Text; 
import javafx.stage.Stage; 
         
public class StackPaneExample extends Application { 
   @Override 
   public void start(Stage stage) {                     
      //Drawing a Circle 
      Circle circle = new Circle(300, 135, 100); 
      circle.setFill(Color.DARKSLATEBLUE); 
      circle.setStroke(Color.BLACK);
      
      //Drawing Sphere 
      Sphere sphere = new Sphere(50); 
       
      //Creating a text 
      Text text = new Text("Hello how are you"); 
      
      //Setting the font of the text 
      text.setFont(Font.font(null, FontWeight.BOLD, 15));     
      
      //Setting the color of the text 
      text.setFill(Color.CRIMSON); 
      
      //setting the position of the text 
      text.setX(20); 
      text.setY(50);       
       
      //Creating a Stackpane 
      StackPane stackPane = new StackPane(); 
      
      //Setting the margin for the circle 
      stackPane.setMargin(circle, new Insets(50, 50, 50, 50));       
       
      //Retrieving the observable list of the Stack Pane 
      ObservableList list = stackPane.getChildren(); 
      
      //Adding all the nodes to the pane 
      list.addAll(circle, sphere, text); 
        
      //Creating a scene object 
      Scene scene = new Scene(stackPane);  
      
      //Setting title to the Stage 
      stage.setTitle("Stack 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 StackPaneExample.java 
java StackPaneExample

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