JavaFX Zentrieren von Text in einem Fensterbereich

Sheeraz Gul 15 Februar 2024
JavaFX Zentrieren von Text in einem Fensterbereich

Es gibt keine Funktion zum Zentrieren der Knoten in einer Pane-Klasse, aber wir können StackPane verwenden, wenn wir die Knoten zentrieren möchten. Dieses Tutorial demonstriert die Verwendung eines StackPane zum Zentrieren von Text oder anderen Knoten in JavaFX.

JavaFX zentriert Text in einem Fenster

Das StackPane ist eine Art Fenster, das verwendet wird, um seine Kinder so auszulegen, dass sie mit anderen gestapelt werden können. Wir können das StackPane ausrichten, um die Knoten im Bereich zu zentrieren.

Die standardmäßige Ausrichtungseigenschaft für ein StackPane ist Pos.CENTER. Das JavaFX StackPane wird aus JavaFX.scene.layout.StackPane instanziiert.

Das StackPane hat zwei Konstruktoren, die für unterschiedliche Zwecke verwendet werden. Die Syntax für StackPane lautet:

StackPane Demo = new StackPane();

Die Konstruktoren von StackPane sind:

  • StackPane(): Das Layout wird mit der Standardausrichtung Pos.CENTER erstellt.
  • StackPane(Node…. nd): Das Layout wird mit Default-Ausrichtung erstellt.

Die Ausrichtungseigenschaft kann verwendet werden, um die Knoten in einem StackPane auszurichten. Es gibt drei Methoden für StackPane, um mit der Ausrichtung zu arbeiten:

  • getAlignment(): Die Methode wird verwendet, um den Wert der Ausrichtungseigenschaft zu erhalten.
  • setAlignment(Posvalue): Die Methode wird verwendet, um den Eigenschaftswert der Ausrichtung zu setzen.
  • setAlignment(Node child, Posvalue): Die Methode wird verwendet, um den Ausrichtungs-Eigenschaftswert für einen untergeordneten Knoten im StackPane zu setzen.

Lassen Sie uns ein Beispiel ausprobieren, um den Text von Knoten in einem Bereich mit dem StackPane zu zentrieren. Siehe Beispiel:

package delftstack;

import javafx.application.Application;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Sphere;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class JavaFx_StackPane extends Application {
  @Override
  public void start(Stage DemoStage) {
    // Create the text to be centered
    Text Demotext = new Text("Centered Text");
    // Font for the text
    Demotext.setFont(Font.font(null, FontWeight.BOLD, 20));
    // color of the text
    Demotext.setFill(Color.BLUE);
    // position of the text
    Demotext.setX(20);
    Demotext.setY(50);
    // circle
    Circle DemoCircle = new Circle(700, 500, 300);
    // fill color
    DemoCircle.setFill(Color.LIGHTBLUE);
    DemoCircle.setStroke(Color.BLACK);
    // Now Create a Stackpane
    StackPane DemoStackPane = new StackPane();
    // Margin for the above circle
    DemoStackPane.setMargin(DemoCircle, new Insets(50, 50, 50, 50));
    ObservableList li = DemoStackPane.getChildren();
    // Add child nodes to the pane
    li.addAll(DemoCircle, Demotext);
    // Create a scene
    Scene DemoScene = new Scene(DemoStackPane);
    // Set title
    DemoStage.setTitle("Centered Text Sample");
    // Add scene to the stage
    DemoStage.setScene(DemoScene);
    // Display the results
    DemoStage.show();
  }
  public static void main(String args[]) {
    launch(args);
  }
}

Der Code erstellt einen Text und einen Kreis im StackPane und verwendet die Standardausrichtung der Mittelposition. Siehe Ausgabe:

Text im Bereich zentrieren

Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

Verwandter Artikel - Java JavaFX