Inleiding tot JavaFX VBox

In JavaFX is VBox een component die zijn kinderknooppunt op een verticale manier weergeeft. Als het een opvulset of rand heeft, wordt de inhoud binnen die inzet weergegeven. Bovendien worden ze bij het toevoegen van nieuwe kinderen onder het vorige onderliggende knooppunt geplaatst. Als er geen hoogte en breedte worden vermeld, beschouwt VBox de standaardgrootte als breedte en hoogte van kinderen en lijnt deze uit naar de positie linksboven. De klasse VBox wordt uitgebreid met de klasse Pane en kan worden gestart vanuit de klasse javafx.scene.layout.VBox.

Constructors van JavaFX VBox

Om de VBox in Java te implementeren, kunnen vier constructors worden gebruikt.

  • VBox (): er wordt een lay-out gemaakt met 0 tussenruimte.
  • VBox (dubbele afstand): er wordt een lay-out gemaakt met de opgegeven afstand.
  • VBox (dubbele afstand, knooppuntkinderen): er wordt een lay-out gemaakt met de opgegeven afstanden en onderliggende knooppunten.
  • VBox (Node? Children): Er wordt een lay-out gemaakt met de opgegeven afstand 0 en onderliggende nodes.

Eigenschappen van JavaFX VBox

JavaFX VBox heeft drie eigenschappen zoals,

  • uitlijning: eigenschap die wordt gebruikt voor de uitlijning van de kinderen die zich binnen de hoogte en breedte van VBox bevindt.
  • fillWidth: Aanpasbare onderliggende knooppunten worden aangepast aan de breedte van de VBox of in de gewenste breedte gehouden bij het instellen van deze eigenschap als waar.
  • spatiëring: de verticale ruimte tussen de onderliggende knooppunten in vbox wordt ingesteld.

Top 15 methoden van JavaFX VBox

Hieronder worden enkele veelgebruikte methoden in JavaFX VBox vermeld:

  1. clearConstraints (Node child): VBox-beperkingen worden verwijderd uit de child node.
  2. computeMinWidth (dubbele hoogte): de minimale breedte van het gebied wordt met deze methode berekend.
  3. computeMinHeight (dubbele breedte): de minimale hoogte van het gebied wordt met deze methode berekend.
  4. getAlignment (): de waarde van de eigenschap alignment wordt geretourneerd.
  5. isFillWidth (): de waarde van de eigenschap fillWidth wordt geretourneerd.
  6. setAlignment (Pos-waarde): de waarde van de uitlijningseigenschap wordt ingesteld.
  7. setSpacing (dubbele waarde): de waarde van de eigenschap spacing wordt ingesteld.
  8. getMargin (Node child): de waarde van de eigenschap margin wordt geretourneerd.
  9. getSpacing (): de waarde van de eigenschap spacing wordt geretourneerd.
  10. getVgrow (Node child): de waarde van de eigenschap vgrow wordt geretourneerd.
  11. setFillWidth (boolean value): de waarde van de eigenschap fillWidth wordt ingesteld.
  12. spacingProperty (): de verticale ruimte tussen de onderliggende knooppunten in vbox wordt ingesteld.
  13. setMargin (Nodechild, Insets-waarde): de marge voor het onderliggende item wordt ingesteld in de VBox.
  14. computePrefWidth (dubbele hoogte): een voorkeursbreedte voor het gebied dat nodig is voor de gegeven hoogte wordt berekend.
  15. computePrefHeight (dubbele breedte): een gewenste hoogte voor het gebied dat nodig is voor de gegeven breedte wordt berekend.

Programma's om JavaFX VBox te implementeren

Laten we nu enkele voorbeelden van VBox bekijken met enkele van de methoden die in de bovenstaande sectie zijn uitgelegd.

Voorbeeld 1

Code:

//Java program to create a VBox
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
//class that extends Application base class
public class JavaFXVBoxExample extends Application (
//application starts at this point
@Override
public void start(Stage s) throws Exception (
//create button 1
Button b1 = new Button("Sample button 1 for VBox");
Button b2 = new Button("Sample button 2 for VBox");
//create vbox
VBox vb = new VBox();
//create scene
Scene sc = new Scene(vb, 200, 200);
//add them
vb.getChildren().addAll(b1, b2);
//set the scene
s.setScene(sc);
//display the result
s.show();
)
//main method
public static void main(String() args) (
launch(args);
)
)

Output:

  • Ten eerste worden 2 knoppen b1 en b2 gemaakt met de tekst 'Voorbeeldknop 1 voor VBox' en 'Voorbeeldknop 2 voor VBox'.
  • Maak vervolgens een VBox en een scène.
  • Na het instellen van de scène worden de resultaten weergegeven.

Voorbeeld 2

Code:

//Java program to demonstrate JavaFX VBox with center alignment
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.Stage;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.geometry.Pos;
//class that extends Application class
public class JavaFXVBoxExample extends Application (
// application starts at this point
public void start(Stage s)
(
try (
// set title
s.setTitle("VBox Example");
// create VBox
VBox vb = new VBox(10);
// create label
Label lb = new Label("Hey … This is the sample for JavaFX VBox !!");
// add the created label to vbox
vb.getChildren().add(lb);
// set alignment of the vbox
vb.setAlignment(Pos.CENTER);
// add buttons to VBox
for (int i = 0; i < 4; i++)
(
vb.getChildren().add(new Button("This is the sample button " + (int)(i + 1)));
)
// create a scene
Scene sc = new Scene(vb, 400, 300);
// set the scene
s.setScene(sc);
s.show();
)
//catch the exception
catch (Exception e) (
System.out.println(e.getMessage());
)
)
// Main Method
public static void main(String args())
(
// launch the application
launch(args);
)
)

Output:

  • Maak eerst een VBox en een label.
  • Voeg vervolgens het gemaakte label toe aan VBox.
  • Maak knoppen met een for-lus, zodat de syntaxis voor het maken van knoppen niet opnieuw hoeft te worden geschreven.
  • Maak een scène en stel deze in.
  • Na het instellen van de scène worden knoppen in het midden weergegeven.

Voorbeeld 3

Code:

//Java program to create VBox with padding and insets
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;
public class JavaFXVBoxExample extends Application (
//main method
public static void main(String() args) (
Application.launch(args);
)
//application starts at this point
@Override
public void start(Stage s) (
//set title
s.setTitle("VBox Sample");
// Create VBox
VBox vb = new VBox();
//set padding
vb.setPadding(new Insets(10, 50, 50, 50));
//set spacing
vb.setSpacing(10);
//create label
Label lbl = new Label("This is the VBox");
//set font properties
lbl.setFont(Font.font("Amble CN", FontWeight.BOLD, 24));
vb.getChildren().add(lbl);
// create Buttons
Button b1 = new Button();
b1.setText(" I am Button1");
vb.getChildren().add(b1);
Button b2 = new Button();
b2.setText("I am Button2");
vb.getChildren().add(b2);
Button b3 = new Button();
b3.setText("I am Button3");
vb.getChildren().add(b3);
Button b4 = new Button();
b4.setText("I am Button4");
vb.getChildren().add(b4);
// Add VBox to the scene that is created
Scene sc = new Scene(vb);
s.setScene(sc);
s.show();
)
)

Output:

  • Ten eerste wordt een VBox gemaakt met opvulling en inzetstukken.
  • Maak vervolgens een label met een aangepast lettertype.
  • Maak daarna 4 knoppen en een scène.
  • Stel ten slotte de scène in en geef de resultaten weer.

Conclusie

JavaFX VBox is een component die het onderliggende knooppunt helpt om op een verticale manier op te maken. Ook wordt het nieuwe kind toegevoegd naast het vorige kind, vergelijkbaar met een stapel. Meer details over JavaFX VBox worden in dit document besproken.

Aanbevolen artikelen

Dit is een handleiding voor JavaFX VBox. Hier bespreken we de inleiding tot JavaFX VBox en zijn constructeurs met de top 3 methoden en programma-implementatie. U kunt ook de volgende artikelen bekijken voor meer informatie-

  1. Programma's om JavaFX Slider te implementeren
  2. Verschil tussen Java Swing en Java FX
  3. Top 8-hitlijsten in JavaFX
  4. Structuur van JavaFX-toepassingen
  5. Hoe maak je een menu in JavaFX?