Úvod do JavaFX StackPane

Java StackPane je kontajner, ktorý určuje svoje deti naukladané ostatným. Oblasť obsahu je vyplnená zmenou veľkosti detí a ak detské uzly nie sú schopné zmeniť veľkosť, použije sa pos.CENTER, čo je predvolená vlastnosť zarovnania. Normálne detské uzly nie sú schopné zmeniť veľkosť, keď tomu zabránila maximálna veľkosť. Podokno Java Stack je možné vytvoriť z triedy javafx.scene.layout.StackPane. Keď je vypchávka nastavená, podriadené uzly budú rozmiestnené iba vo vnútri vložiek. Syntax, konštruktory a niekoľko ďalších aspektov JavaFX StackPane sa bude diskutovať v nasledujúcich častiach.

syntaxe:

V JavaFX možno StackPane vytvoriť tak, ako je to znázornené nižšie.

StackPane sp = new StackPane();

Pred vykonaním kódu vždy skontrolujte, či je do programu importovaná trieda javafx.scene.layout.StackPane.

Konštruktory a vlastnosti JavaFX StackPane

Ďalej sme diskutovali konštruktérov a vlastnosti javafx stackpane:

konštruktéri

Existujú dva konštruktory pre JavaFX StackPane. Oni sú:

  • StackPane (): Rozloženie StackPane sa vytvorí s predvoleným zarovnaním. V JavaFX StackPane sa CENTER považuje za predvolené zarovnanie.
  • StackPane (Uzol … nd): Rozloženie StackPane bude vytvorené s predvoleným zarovnaním.

vlastnosti

Java StackPane má zarovnanie vlastností, ktoré sa používa na zarovnanie detí, ktoré je v rámci výšky a šírky StackPane.

Metódy StackPane

Java StackPane má niekoľko metód, ktoré vykonávajú rôzne funkcie. Niektoré z bežne používaných metód sú vysvetlené nižšie:

  • clearConstraints (Nodechild): StackPane obmedzenia budú odstránené z podradeného uzla.
  • computeMinWidth (dvojitá výška): Minimálna šírka oblasti sa vypočíta pomocou tejto metódy.
  • computeMinHeight (dvojitá šírka): Minimálna výška oblasti sa vypočíta pomocou tejto metódy.
  • getAlignment (): Hodnota vlastnosti Zarovnanie bude vrátená.
  • setAlignment (Posvalue): Nastaví sa hodnota vlastnosti zarovnania.
  • setAlignment (Node child, Posvalue): Hodnota vlastnosti Alignment bude nastavená pre dieťa, ktoré je prítomné v zásobníku.
  • getMargin (Nodechild): Hodnota obmedzení marže bude vrátená.
  • computePrefWidth (dvojitá výška): Vypočíta sa preferovaná šírka pre oblasť, ktorá je potrebná pre danú výšku.
  • computePrefHeight (dvojitá šírka): Vypočíta sa preferovaná výška pre oblasť, ktorá je potrebná pre danú šírku.

Program na implementáciu JavaFX StackPane

Teraz sa pozrime na rôzne programy JavaFX na implementáciu JavaFX StackPane.

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

Výkon:

StackPane sa vytvorí pomocou dvoch tlačidiel. Ako vidíte, jedno tlačidlo je na vrchu druhého tlačidla, ktoré spĺňa podmienky 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);
)
)

Výkon:

StackPane je vytvorený s 1 kruhom, 1 guľou a textom. Všetky tieto ležia nad ostatnými, kde je text na najvyššej úrovni.

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

Výkon :

Po vykonaní kódu sa zobrazí dialógové okno so zaškrtávacím políčkom a tlačidlom.

Po kliknutí na tlačidlo Kliknite na tlačidlo sa začiarkavacie políčko nahradí tlačidlom.

Ak znova kliknete na tlačidlo, zobrazí sa menovka.

Odporúčané články

Toto je sprievodca JavaFx StackPane. Tu diskutujeme konštruktory a vlastnosti, metódy JavaFx StackPane s rôznymi programami. Viac informácií nájdete aj v ďalších navrhovaných článkoch -

  1. Konštruktori tlačidla JavaFX
  2. Štruktúra aplikácie JavaFx
  3. Top 5 rozložení JavaFX
  4. Syntax použitá v značke JavaFX

Kategórie: