Introduksjon til JavaFX StackPane

Java StackPane er en container som legger ut barna som er stablet opp til andre. Innholdsområdet fylles ved å endre størrelsen på barna, og hvis barnenodene ikke er i stand til å endre størrelse, vil Pos.CENTER bli brukt, som er standardinnstillingsegenskapen. Normalt kan ikke barneknuter endre størrelsen når den maksimale størrelsen forhindret det. Java Stack Pane kan instantieres fra klassen javafx.scene.layout.StackPane. Når polstring er satt, legges underordnede knuter bare i innsatsene. Syntaks, konstruktører og flere andre aspekter av JavaFX StackPane vil bli diskutert i de følgende seksjonene.

syntaks:

I JavaFX kan StackPane opprettes som vist nedenfor.

StackPane sp = new StackPane();

Forsikre deg alltid om at klassen javafx.scene.layout.StackPane er importert i programmet før du kjører koden.

Konstruktører og egenskaper til JavaFX StackPane

Nedenfor har vi diskutert konstruktørene og egenskapene til javafx stackpane:

Constructors

Det er to konstruktører for JavaFX StackPane. De er:

  • StackPane (): En StackPane-layout blir opprettet med en standardjustering. I JavaFX StackPane blir CENTER betraktet som en standardjustering.
  • StackPane (Node…. Nd): Et StackPane-oppsett opprettes med en standardjustering.

Eiendommer

Java StackPane har en egenskapsjustering som brukes til justering av barna som er innenfor høyden og bredden på StackPane.

Metoder for StackPane

Java StackPane har flere metoder som utfører forskjellige funksjoner. Noen av de ofte brukte metodene blir forklart nedenfor:

  • clearConstraints (Nodechild): StackPane-begrensninger fjernes fra underordnede noder.
  • computeMinWidth (dobbel høyde): Minste bredde for regionen vil bli beregnet ved hjelp av denne metoden.
  • computeMinHeight (dobbel bredde): Minstehøyde for regionen vil bli beregnet ved hjelp av denne metoden.
  • getAlignment (): Verdien på Alignment Property returneres.
  • setAlignment (Posvalue): Verdien for Justeringsegenskapene blir satt.
  • setAlignment (Knutepunkt, Posvalue): Verdien for justeringsegenskapene blir satt for barnet som er til stede i stabelruten.
  • getMargin (Nodechild): Marginalbegrensningsverdien vil bli returnert.
  • computePrefWidth (dobbel høyde): Foretrukket bredde for området som er nødvendig for den gitte høyden, vil bli beregnet.
  • computePrefHeight (dobbel bredde): Foretrukket høyde for området som er nødvendig for den gitte bredden, blir beregnet.

Program for å implementere JavaFX StackPane

La oss nå se forskjellige JavaFX-programmer for å implementere JavaFX StackPane.

Program 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);
)
)

Produksjon:

En StackPane opprettes med to knapper. Som du kan se, er den ene knappen øverst på den andre knappen som tilfredsstiller tilstanden til StackPane.

Program 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);
)
)

Produksjon:

Et StackPane opprettes med en sirkel, en sfære og en tekst. Alle disse ligger oppå andre der teksten er øverst.

Program 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);
)
)

Utgang:

Når du kjører koden, vises en dialogboks med en avkrysningsrute og knapp.

Når du klikker på knappen Klikk meg, vil en avkrysningsrute bli erstattet av en knapp.

Hvis du klikker på knappen igjen, vises en etikett.

Anbefalte artikler

Dette er en guide til JavaFx StackPane. Her diskuterer vi konstruktører og egenskaper, metoder for JavaFx StackPane med forskjellige programmer. Du kan også gå gjennom andre foreslåtte artikler for å lære mer -

  1. Konstruktører av JavaFX-knapp
  2. Struktur av JavaFx-applikasjon
  3. Topp 5 JavaFX-oppsett
  4. Syntaks brukt i JavaFX-etikett