Introduktion til JavaFX StackPane

Java StackPane er en container, der lægger sine børn ud til andre. Indholdsområdet udfyldes ved at ændre størrelsen på børnene, og hvis børneknuderne ikke er i stand til at ændre størrelsen, bruges Pos.CENTER, som er standardjusteringsegenskab. Normalt kan børneknuder ikke ændre størrelsen, når den maksimale størrelse forhindrede det. Java Stack Pane kan instantieres fra klassen javafx.scene.layout.StackPane. Når polstring er indstillet, lægges underordnede knudepunkter kun inden for indsatserne. Syntaks, konstruktører og flere andre aspekter af JavaFX StackPane vil blive diskuteret i de følgende afsnit.

Syntaks:

I JavaFX kan StackPane oprettes som vist nedenfor.

StackPane sp = new StackPane();

Sørg altid for, at klassen javafx.scene.layout.StackPane importeres i programmet, før koden udføres.

Konstruktører og egenskaber for JavaFX StackPane

Nedenfor har vi drøftet konstruktører og egenskaber ved javafx stackpane:

Constructors

Der er to konstruktører til JavaFX StackPane. De er:

  • StackPane (): Et StackPane-layout oprettes med en standardjustering. I JavaFX StackPane betragtes CENTER som en standardjustering.
  • StackPane (Node…. Nd): Et StackPane-layout oprettes med en standardjustering.

Ejendomme

Java StackPane har en egenskabsindretning, der bruges til justering af børnene, der ligger inden for højden og bredden af ​​StackPane.

Metoder til StackPane

Java StackPane har flere metoder, der udfører forskellige funktionaliteter. Nogle af de ofte anvendte metoder forklares nedenfor:

  • clearConstraints (Nodechild): StackPane-begrænsninger fjernes fra underordnede knude.
  • computeMinWidth (dobbelt højde): Regionens mindste bredde beregnes ved hjælp af denne metode.
  • computeMinHeight (dobbelt bredde): Regionens mindste højde beregnes ved hjælp af denne metode.
  • getAlignment (): Justeringsegenskabets værdi returneres.
  • setAlignment (Posvalue): Justeringsegenskabets værdi indstilles.
  • setAlignment (Node barn, Posvalue): Justeringsegenskabets værdi indstilles for det barn, der er til stede i stabelvinduet.
  • getMargin (Nodechild): Marginalbegrænsningsværdien returneres.
  • computePrefWidth (dobbelt højde): Den foretrukne bredde for det område, der er nødvendigt for den givne højde, beregnes.
  • computePrefHeight (dobbelt bredde): Den foretrukne højde for det område, der er nødvendigt for den givne bredde, beregnes.

Program til implementering af JavaFX StackPane

Lad os nu se forskellige JavaFX-programmer til implementering af 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);
)
)

Produktion:

En StackPane oprettes med to knapper. Som du kan se, er den ene knap øverst på den anden knap, der tilfredsstiller betingelsen for 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);
)
)

Produktion:

En StackPane oprettes med 1 cirkel, 1 kugle og en tekst. Alle disse ligger oven på andre, hvor 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);
)
)

Output:

Når du udfører koden, vises en dialogboks med et afkrydsningsfelt og en knap.

Når du klikker på knappen Klik på mig, erstattes et afkrydsningsfelt med en knap.

Hvis du klikker på knappen igen, vises en etiket.

Anbefalede artikler

Dette er en guide til JavaFx StackPane. Her diskuterer vi konstruktører og egenskaber, metoder til JavaFx StackPane med forskellige programmer. Du kan også gennemgå vores andre foreslåede artikler for at lære mere -

  1. Konstruktører af JavaFX-knap
  2. Struktur af JavaFx-applikation
  3. Top 5 JavaFX-layout
  4. Syntaks brugt i JavaFX-etiket

Kategori: