JavaFX - Layout Stackpane

Se usiamo il riquadro dello stack, i nodi sono disposti uno sopra l'altro, proprio come nello stack. Il nodo aggiunto per primo viene posizionato in fondo alla pila e il nodo successivo viene posizionato sopra di esso.

La classe denominata StackPane del pacchetto javafx.scene.layoutrappresenta StackPane. Questa classe contiene una singola proprietà denominata alignment. Questa proprietà rappresenta l'allineamento dei nodi all'interno del riquadro dello stack.

Oltre a questi, questa classe fornisce anche un metodo denominato setMargin(). Questo metodo viene utilizzato per impostare il margine per il nodo all'interno del riquadro dello stack.

Esempio

Il seguente programma è un esempio di StackPanedisposizione. In questo, stiamo inserendo un cerchio, una sfera e un testo nello stesso ordine.

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

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

javac StackPaneExample.java 
java StackPaneExample

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