Inleiding tot JavaFX-lay-outs

Gebruikersinterface-indelingen vormen het centrum van het interfaceontwerp. Veel van de grafische gebruikersinterfacekaders bieden ondersteuning voor lay-outs in de vorm van API's (Application Programming Interfaces). In JavaFX is ook een rijk aantal lay-outs beschikbaar die helpen bij het vervullen van veel van de beperkingen om het consistente uiterlijk aan te pakken. In dit geval hoeft alleen het minimum aantal parameters te worden ingesteld. Lay-outs kunnen van verschillende typen zijn en dit wordt in de volgende paragrafen in detail uitgelegd.

Top 5 JavaFX-indelingen

Zoals reeds besproken, kunnen indelingen van JavaFX van verschillende typen zijn, zoals VBox, HBox, BorderPane, FlowPane, StackPane, AnchorPane, TilePane, GridPane, enz. In deze sectie zullen we er vijf bespreken.

1. VBox

VBox helpt bij het organiseren van het knooppunt in een verticale kolom. Hierin kan de standaardhoogte van het inhoudsgebied de kinderen in de gewenste hoogte weergeven en de standaardbreedte is de grootste van de breedte van de kinderen. Hoewel de locaties niet voor de kinderen kunnen worden ingesteld, omdat deze automatisch worden berekend, kunnen ze tot op zekere hoogte worden beheerd door aanpassing van de VBox-eigenschappen.

Code:

// Java Program to create a VBox
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.Stage;
public class JFXLayouts extends Application (
// start method helps in launching the application
public void start(Stage stage)
(
// Title set
stage.setTitle("Example for VBox");
// VBox creation
VBox vb = new VBox(10);
// Label creation
Label lb = new Label("this is VBox example");
// Add the created label to vbox
vb.getChildren().add(lb);
// add the buttons to VBox
vb.getChildren().add(new Button("Click A"));
vb.getChildren().add(new Button("Click B"));
vb.getChildren().add(new Button("Click C"));
// Scene creation
Scene scene = new Scene(vb, 300, 300);
// Scene setting
stage.setScene(scene);
stage.show();
)
// Main Method
public static void main(String args())
(
//method to launch the JavaFX application
launch(args);
)
)

Output:

Hier zijn 3 knoppen A, B en C horizontaal gerangschikt.

2. HBox

HBox werkt in het tegenovergestelde concept van VBox. Dat wil zeggen, knooppunten worden horizontaal georganiseerd. Hierna volgt een programma dat helpt bij het begrijpen van HBox.

Code:

// Java Program to create an HBox
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.Stage;
public class JFXLayouts extends Application (
// start method helps in launching the application
public void start(Stage stage)
(
// Title set
stage.setTitle("Example for HBox");
// HBox creation
HBox hb = new HBox(10);
// Label creation
Label lb = new Label("this is HBox example");
// Add the created label to Hbox
hb.getChildren().add(lb);
// add the buttons to Hbox
hb.getChildren().add(new Button("Click A"));
hb.getChildren().add(new Button("Click B"));
hb.getChildren().add(new Button("Click C"));// Scene creation
Scene scene = new Scene(hb, 300, 300);
// Scene setting
stage.setScene(scene);
stage.show();
)
// Main Method
public static void main(String args())
(
//method to launch the JavaFX application
launch(args);
)
)

Output:

In dit geval zijn 3 knoppen A, B en C horizontaal gerangschikt.

3. BorderPane

Hierin heeft de lay-outstructuur vijf regio's zoals TOP, BODEM, MIDDEN, LINKS en RECHTS.

Code:

// Java Program to create an BorderPane
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.Stage;
public class JFXLayouts extends Application (
// start method helps in launching the application
public void start(Stage stage)
(
BorderPane bp = new BorderPane();
bp.setTop(new TextField("A-Top"));
bp.setBottom(new TextField("B-Bottom"));
bp.setLeft(new TextField("C-Left"));
bp.setRight(new TextField("D-Right"));
bp.setCenter(new TextField("E-Center"));// Scene creation
Scene scene = new Scene(bp);// Title set
stage.setTitle("Example for BorderPane");
// Scene setting
stage.setScene(scene);
stage.show();
)
// Main Method
public static void main(String args())
(
//method to launch the JavaFX application
launch(args);
)
)

Output:

Hier worden 5 tekstvelden opnieuw verzonden in de vijf richtingen van het paneel.

4. FlowPane

Met FlowPane kan de gebruiker de knooppunten opeenvolgend opmaken en de knooppunten op de grens plaatsen. Hier kunnen de knooppunten zich in verticale richting (kolommen) of horizontale richting (rijen) bevinden.

Code:

// Java Program to create a flowpane
import javafx.application.Application;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.FlowPane;
import javafx.scene.shape.Sphere;
import javafx.stage.Stage;
public class JFXLayouts extends Application (
// start method helps in launching the application
public void start(Stage stage)
(
//create buttons
Button b1 = new Button("Button A");
Button b2 = new Button("Button B");
Button b3 = new Button("Button C");
Button b4 = new Button("Button D");
//Flow Pane creation
FlowPane fp = new FlowPane();
//Set horizontal gap
fp.setHgap(25);
//Set margin
fp.setMargin(b1, new Insets(20, 0, 20, 20));
ObservableList list = fp.getChildren();
//Add nodes to the flow pane
list.addAll(b1, b2, b3, b4);
// Scene creation
Scene scene = new Scene(fp);
// Title set
stage.setTitle("Example for BorderPane");
// Scene setting
stage.setScene(scene);
stage.show();
)
// Main Method
public static void main(String args())
(
//method to launch the JavaFX application
launch(args);
)
)

Output:

5. StackPane

In deze lay-out worden alle knooppunten in één stapel geplaatst. Dat wil zeggen, knooppunten zijn net als in een stapel boven op een andere gerangschikt.

Code:

// Java Program to create a flowpane
import javafx.application.Application;
import javafx.scene.shape.Sphere;
import javafx.collections.ObservableList;
import javafx.scene.text.Font;
import javafx.geometry.Insets;
import javafx.scene.text.FontWeight;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.shape.Circle;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.scene.paint.Color;
public class JFXLayouts extends Application (
@Override
public void start(Stage stage) (
//draw a sphere
Sphere sph = new Sphere(50);
//text creation
Text t = new Text("DEMO");
//Set font of the text
t.setFont(Font.font(null, FontWeight.BOLD, 13));
//Set color of the text
t.setFill(Color.RED);
//set position of the text
t.setX(20);
t.setY(50);
//Create a Stackpane
StackPane sp = new StackPane();
ObservableList list = sp.getChildren();
//Add nodes to the pane
list.addAll( sph, t);
// Scene creation
Scene scene = new Scene(sp);
// Title set
stage.setTitle("Example for BorderPane");
// Scene setting
stage.setScene(scene);
stage.show();
)
// Main Method
public static void main(String args())
(
//method to launch the JavaFX application
launch(args);
)
)

Output:

Conclusie

JavaFX Layouts helpt bij het creëren van het interface-ontwerp in een consistent uiterlijk. Lay-outs kunnen van verschillende typen zijn en ze kunnen worden gekozen op basis van de vereisten van de gebruiker. In dit document worden vijf van de JavaFX-lay-outs in detail besproken.

Aanbevolen artikelen

Dit is een handleiding voor JavaFX-indelingen. Hier bespreken we de top 5-indelingen van JavaFX zoals VBox, HBox, BorderPane, FlowPane en StackPane, samen met voorbeelden en code-implementatie. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Break Statement in Java
  2. JLijst in Java
  3. JPanel in Java
  4. Voor Loop in Java
  5. Volledige gids voor JavaFX-label
  6. Break Statement in JavaScript
  7. HTML-indeling
  8. Typen en hoe JavaFx-grafieken te maken?
  9. Hoe tekst in te voeren in JavaFX TextField?
  10. Constructors en methoden van JavaFx Button
  11. Top 15 methoden van HBox in JavaFX
  12. Hoe maak je een checkbox in JavaFX met voorbeelden?
  13. JavaFX VBox | Methoden van JavaFX VBox
  14. Verschillende methoden van JavaFX StackPane