Uvod v JavaFX StackPane

Java StackPane je posoda, v katero so postavljeni otroci, ki so zloženi drugim. Območje vsebine se zapolni s spreminjanjem velikosti otrok in če otroška vozlišča ne morejo spremeniti velikosti, bo uporabljen Pos.CENTER, ki je privzeta lastnost poravnave. Običajno otroška vozlišča ne morejo spremeniti velikosti, ko jih je največja velikost preprečila. Podatkovno okno Java Stack je mogoče uporabiti iz razreda javafx.scene.layout.StackPane. Ko je oblazinjenje nastavljeno, bodo otroška vozlišča postavljena samo znotraj vložkov. Sintaksa, konstruktorji in več drugih vidikov JavaFX StackPane bodo obravnavani v naslednjih razdelkih.

Sintaksa:

V JavaFX-u lahko ustvarite StackPane, kot je prikazano spodaj.

StackPane sp = new StackPane();

Pred izvajanjem kode vedno preverite, ali je razred javafx.scene.layout.StackPane uvožen v program.

Konstruktorji in lastnosti JavaFX StackPane

Spodaj smo razpravljali o konstruktorjih in lastnostih javafx stackpane:

Konstruktorji

Za JavaFX StackPane obstajata dva konstruktorja. To so:

  • StackPane (): Izdelana bo postavitev StackPane s privzeto poravnavo. V JavaFX StackPane se CENTER šteje za privzeto poravnavo.
  • StackPane (vozlišče… .d.): Izdelana bo postavitev StackPane s privzeto poravnavo.

Lastnosti

Java StackPane ima poravnavo lastnosti, ki se uporablja za poravnavo otrok, ki je znotraj višine in širine StackPane.

Metode StackPane

Java StackPane ima več metod, ki izvajajo različne funkcije. Spodaj so razložene nekatere najpogosteje uporabljene metode:

  • clearConstraints (Nodechild): omejitve StackPane bodo odstranjene iz nadrejenega vozlišča.
  • computeMinWidth (dvojna višina): najmanjša širina regije bo izračunana s to metodo.
  • computeMinHeight (dvojna širina): najmanjša višina regije bo izračunana s to metodo.
  • getAlignment (): Vrednost lastnosti poravnave bo vrnjena.
  • setAlignment (Posvalue): Nastavi se vrednost lastnosti poravnave.
  • setAlignment (Node child, Posvalue): vrednost lastnosti poravnave bo nastavljena za otroka, ki je prisoten v skladovnici.
  • getMargin (Nodechild): vrednost omejitev marže bo vrnjena.
  • computePrefWidth (dvojna višina): Izračunana bo želena širina za regijo, ki je potrebna za dano višino.
  • computePrefHeight (dvojna širina): Izračunana bo želena višina za regijo, ki je potrebna za dano širino.

Program za izvajanje JavaFX StackPane

Zdaj pa si oglejmo različne programe JavaFX za izvajanje JavaFX StackPane.

1. program

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

Izhod:

StackPane je ustvarjen z dvema gumboma. Kot vidite, je en gumb na vrhu drugega gumba, ki izpolnjuje pogoje StackPane.

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

Izhod:

StackPane je ustvarjen z 1 krogom, 1 kroglo in besedilom. Vse to leži nad drugimi, kjer je besedilo na vrhu.

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

Izhod:

Ob izvršitvi kode se prikaže pogovorno okno s potrditvenim poljem in gumbom.

Če kliknete gumb Kliknite me, bo potrditveno polje nadomeščeno z gumbom.

Če še enkrat kliknete gumb, se bo prikazala nalepka.

Priporočeni članki

To je vodnik za JavaFx StackPane. Tukaj razpravljamo o konstruktorjih in lastnostih, metodah JavaFx StackPane z različnimi programi. Če želite izvedeti več, lahko preberete tudi druge naše predlagane članke -

  1. Konstruktorji gumba JavaFX
  2. Struktura aplikacije JavaFx
  3. Najboljših 5 postavitev JavaFX
  4. Sintaksa, ki se uporablja v oznaki JavaFX