JavaFX StackPane sissejuhatus

Java StackPane on konteiner, mis näeb ette, et tema lapsed on teistele virnastatud. Sisuala täidetakse laste suuruse muutmisega ja kui lastesõlmed ei ole võimelised muutma suurust, kasutatakse Pos.CENTER, mis on vaike joondamise atribuut. Tavaliselt ei suuda lapsesõlmed suurust muuta, kui maksimaalne suurus seda takistas. Java Stack Pane saab kiirendada klassist javafx.scene.layout.StackPane. Kui polster on sätitud, asetsevad lastesõlmed ainult sisetükkides. Järgmistes lõikudes käsitletakse JavaFX StackPane'i süntaksit, konstruktoreid ja mitut muud aspekti.

Süntaks:

JavaFX-is saab StackPane'i luua järgmiselt.

StackPane sp = new StackPane();

Enne koodi käivitamist veenduge alati, et klass javafx.scene.layout.StackPane oleks programmis imporditud.

JavaFX StackPane'i konstruktorid ja omadused

Allpool oleme arutanud javafxi virnapaneeli konstruktoreid ja omadusi:

Konstruktorid

JavaFX StackPane jaoks on kaks konstruktorit. Nemad on:

  • StackPane (): StackPane'i paigutus luuakse vaikimisi joondatud. JavaFX StackPane'is loetakse CENTER vaikejoonduseks.
  • StackPane (sõlm…. Nd): luuakse StackPane'i paigutus vaikimisi joondatud kujul.

Omadused

Java StackPane'il on omaduste joondus, mida kasutatakse laste joondamiseks StackPane'i kõrguse ja laiuse piires.

StackPane'i meetodid

Java StackPane'il on mitu meetodit, mis täidavad erinevaid funktsioone. Mõnda kõige sagedamini kasutatavat meetodit selgitatakse allpool:

  • clearConstraints (Nodechild): StackPane'i piirangud eemaldatakse lapsesõlmest.
  • computeMinWidth (topeltkõrgus): Selle meetodi abil arvutatakse piirkonna minimaalne laius.
  • computeMinHeight (kahekordne laius): selle meetodi abil arvutatakse piirkonna minimaalne kõrgus.
  • getAlignment (): joondamise atribuudi väärtus tagastatakse.
  • setAlignment (Posvalue): seadistatakse joondamise atribuudi väärtus.
  • setAlignment (Node laps, Posvalue): Joondamise atribuudi väärtus seatakse virnas asuva lapse jaoks.
  • getMargin (Nodechild): Marginaali piirangute väärtus tagastatakse.
  • computePrefWidth (kahekordne kõrgus): arvutatakse eelistatud laius piirkonnas, mida on vaja antud kõrguse jaoks.
  • computePrefHeight (kahekordne laius): arvutatakse selle piirkonna eelistatud kõrgus, mida on vaja antud laiuse jaoks.

JavaFX StackPane'i juurutamise programm

Nüüd vaatame JavaFX StackPane'i rakendamiseks erinevaid JavaFX-programme.

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

Väljund:

StackPane luuakse kahe nupuga. Nagu näete, on üks nupp teise nupu peal, mis vastab StackPane'i tingimustele.

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

Väljund:

StackPane luuakse 1 ringi, 1 sfääri ja tekstiga. Kõik need asuvad teiste peal, kus tekst on kõige peal.

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

Väljund:

Koodi täitmisel ilmub dialoogiboks märkeruudu ja nupuga.

Kui klõpsate nupul Klõpsa mulle, asendatakse märkeruut nupuga.

Kui klõpsate veel kord nuppu, kuvatakse silt.

Soovitatavad artiklid

See on JavaFx StackPane'i juhend. Siin käsitleme JavaFx StackPane'i konstruktoreid ja omadusi, meetodeid erinevate programmidega. Lisateavet leiate ka meie muudest soovitatud artiklitest -

  1. JavaFX Buttoni konstruktorid
  2. JavaFxi rakenduse struktuur
  3. 5 parimat JavaFX-i paigutust
  4. JavaFX Labelis kasutatav süntaks

Kategooria: