Einführung in JavaFX StackPane

Java StackPane ist ein Container, in dem die untergeordneten Elemente gestapelt werden. Der Inhaltsbereich wird durch Ändern der Größe der untergeordneten Knoten ausgefüllt. Wenn die Größe der untergeordneten Knoten nicht geändert werden kann, wird Pos.CENTER verwendet. Dies ist die Standardausrichtungseigenschaft. Normalerweise können untergeordnete Knoten die Größe nicht ändern, wenn die maximale Größe dies verhindert hat. Java Stack Pane kann über die Klasse javafx.scene.layout.StackPane instanziiert werden. Wenn der Abstand festgelegt ist, werden untergeordnete Knoten nur innerhalb der Einfügungen angeordnet. Syntax, Konstruktoren und verschiedene andere Aspekte von JavaFX StackPane werden in den folgenden Abschnitten behandelt.

Syntax:

In JavaFX kann StackPane wie folgt erstellt werden.

StackPane sp = new StackPane();

Stellen Sie immer sicher, dass die Klasse javafx.scene.layout.StackPane in das Programm importiert ist, bevor Sie den Code ausführen.

Konstruktoren und Eigenschaften von JavaFX StackPane

Nachfolgend haben wir die Konstruktoren und Eigenschaften von javafx stackpane besprochen:

Konstruktoren

Es gibt zwei Konstruktoren für JavaFX StackPane. Sie sind:

  • StackPane (): Ein StackPane-Layout wird mit einer Standardausrichtung erstellt. In JavaFX StackPane wird CENTER als Standardausrichtung betrachtet.
  • StackPane (Node…. Nd ): Ein StackPane-Layout wird mit einer Standardausrichtung erstellt.

Eigenschaften

Java StackPane verfügt über eine Eigenschaftsausrichtung, die zur Ausrichtung der untergeordneten Elemente innerhalb der Höhe und Breite von StackPane verwendet wird.

Methoden von StackPane

Java StackPane verfügt über mehrere Methoden, die unterschiedliche Funktionen ausführen. Einige der am häufigsten verwendeten Methoden werden nachfolgend erläutert:

  • clearConstraints (Nodechild): StackPane-Einschränkungen werden vom untergeordneten Knoten entfernt.
  • computeMinWidth (doppelte Höhe): Die minimale Breite der Region wird mit dieser Methode berechnet.
  • computeMinHeight (doppelte Breite): Die minimale Höhe der Region wird mit dieser Methode berechnet.
  • getAlignment (): Der Wert der Alignment-Eigenschaft wird zurückgegeben.
  • setAlignment (Posvalue): Der Wert der Alignment-Eigenschaft wird festgelegt.
  • setAlignment (Node child, Posvalue): Der Wert der Alignment-Eigenschaft wird für das Kind festgelegt, das im Stapelfenster vorhanden ist.
  • getMargin (Nodechild): Der Wert für die Randbedingungen wird zurückgegeben.
  • computePrefWidth (doppelte Höhe): Die bevorzugte Breite für den Bereich, der für die angegebene Höhe benötigt wird, wird berechnet.
  • computePrefHeight (doppelte Breite): Die bevorzugte Höhe für den Bereich, der für die angegebene Breite benötigt wird, wird berechnet.

Programm zum Implementieren von JavaFX StackPane

Sehen wir uns nun verschiedene JavaFX-Programme zur Implementierung von JavaFX StackPane an.

Programm Nr. 1

//java program to demonstrate stack pane
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class JavaFXStackPaneExample extends Application (
//application starts at this point
@Override
public void start(Stage s) throws Exception (
//create button 1
Button b1 = new Button(" This button is on the bottom ");
//create button 2
Button b2 = new Button("This button is on the top");
//create stackpane
StackPane r = new StackPane();
//create scene
Scene sc = new Scene(r, 200, 200);
r.getChildren().addAll(b1, b2);
//set the scene
s.setScene(sc);
//display the result
s.show();
)
public static void main(String() args) (
launch(args);
)
)

Ausgabe:

Ein StackPane wird mit zwei Schaltflächen erstellt. Wie Sie sehen, befindet sich eine Schaltfläche oben auf der anderen Schaltfläche, was die Bedingung von StackPane erfüllt.

Programm Nr. 2

//java program to demonstrate stack pane with the help of shapes
import javafx.application.Application;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
//package for different shapes
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Sphere;
//packages for the text font, size etc
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;
//sample classs that extends Application class
public class JavaFXStackPaneExample extends Application (
//application starts at this point
@Override
public void start(Stage s) (
//Create a text
Text txt = new Text("This is an example of Stackpane");
//Set the font of the above created text
txt.setFont(Font.font(null, FontWeight.BOLD, 20));
//Set the color of the text
txt.setFill(Color.GREEN);
//set the position of the text
txt.setX(20);
txt.setY(50);
//Draw a circle
Circle c = new Circle(400, 200, 100);
//fill color
c.setFill(Color.RED);
//stroke color
c.setStroke(Color.BLACK);
//Draw Sphere
Sphere sp = new Sphere(30);
//Create a Stackpane
StackPane spn = new StackPane();
//Set the margin for the above circle
spn.setMargin(c, new Insets(50, 50, 50, 50));
ObservableList li = spn.getChildren();
//Add the created child nodes to the pane
li.addAll(c, sp, txt);
//Create a scene
Scene sc = new Scene(spn);
//Set title
s.setTitle("Stack Pane Sample");
//Add scene to the stage
s.setScene(sc);
//Display the results
s.show();
)
public static void main(String args())(
launch(args);
)
)

Ausgabe:

Ein StackPane wird mit 1 Kreis, 1 Kugel und einem Text erstellt. Alle diese liegen auf anderen, wo der Text oben ist.

Programm Nr. 3

import javafx.application.Application;
import javafx.collections.ObservableList;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Node;
import javafx.scene.Scene;
public class JavaFXStackPaneExample extends Application (
private StackPane sp;
//application starts at this point
@Override
public void start(Stage s) throws Exception (
VBox r = new VBox();
// create StackPane
sp = new StackPane();
// Add Label
Label lb = new Label("Hi . . I am a label ..!!");
//set visibility as false
lb.setVisible(false);
sp.getChildren().add(lb);
// Add Button
Button b = new Button("Hi .. I'm a Button.. ");
//set visibility as false
b.setVisible(false);
sp.getChildren().add(b);
// Add CheckBox and set its opacity and visibility
CheckBox cb = new CheckBox("Hi… I'm a CheckBox");
//set opacity
cb.setOpacity(1);
//set visibility as true
cb.setVisible(true);
sp.getChildren().add(cb);
sp.setPrefSize(400, 150);
r.getChildren().add(sp);
Button cbtn = new Button("Click me");
r.getChildren().add(cbtn);
r.setAlignment(Pos.CENTER);
Scene sc = new Scene(r, 600, 250);
s.setTitle("StackPane Sample");
s.setScene(sc);
//action to be performed on clicking the button
cbtn.setOnAction(new EventHandler() (
@Override
public void handle(ActionEvent ev) (
//declaration of function
functopchange();
)
));
s.show();
)
//definition of function
private void functopchange() (
ObservableList nd = this.sp.getChildren();
if (nd.size() > 1) (
//top node
Node tN = nd.get(nd.size()-1);
//new top node
Node ntN = nd.get(nd.size()-2);
tN.setVisible(false);
tN.toBack();
ntN.setVisible(true);
)
)
public static void main(String() args) (
launch(args);
)
)

Ausgabe :

Beim Ausführen des Codes wird ein Dialogfeld mit einem Kontrollkästchen und einer Schaltfläche angezeigt.

Wenn Sie auf die Schaltfläche Klick mich klicken, wird ein Kontrollkästchen durch eine Schaltfläche ersetzt.

Wenn Sie erneut auf die Schaltfläche klicken, wird eine Bezeichnung angezeigt.

Empfohlene Artikel

Dies ist eine Anleitung zu JavaFx StackPane. Hier diskutieren wir die Konstruktoren und Eigenschaften, Methoden von JavaFx StackPane mit verschiedenen Programmen. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren -

  1. Konstruktoren von JavaFX Button
  2. Struktur der JavaFx-Anwendung
  3. Top 5 JavaFX-Layouts
  4. Syntax Wird in JavaFX Label verwendet