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.