JavaFX Centrer le texte dans un volet

Sheeraz Gul 12 octobre 2023
JavaFX Centrer le texte dans un volet

Il n’y a pas de fonctionnalité pour centrer les nœuds dans une classe Pane, mais nous pouvons utiliser StackPane si nous voulons centrer les nœuds. Ce tutoriel montre comment utiliser un StackPane pour centrer du texte ou d’autres nœuds dans JavaFX.

Texte du centre JavaFX dans un volet

Le StackPane est une sorte de volet utilisé pour disposer ses enfants à empiler les uns sur les autres. On peut aligner le StackPane pour centrer les nœuds dans le volet.

La propriété d’alignement par défaut pour un StackPane est Pos.CENTER. Le JavaFX StackPane est instancié à partir de JavaFX.scene.layout.StackPane.

Le StackPane a deux constructeurs utilisés à des fins différentes. La syntaxe de StackPane est la suivante :

StackPane Demo = new StackPane();

Les constructeurs de StackPane sont :

  • StackPane() : la mise en page sera créée avec l’alignement par défaut Pos.CENTER.
  • StackPane(Node…. nd) : la mise en page sera créée avec l’alignement par défaut.

La propriété d’alignement peut être utilisée pour aligner les nœuds dans un StackPane. Il existe trois méthodes pour que StackPane fonctionne avec l’alignement :

  • getAlignment() : la méthode est utilisée pour obtenir la valeur de la propriété d’alignement.
  • setAlignment(Posvalue) : la méthode est utilisée pour définir la valeur de la propriété d’alignement.
  • setAlignment(Node child, Posvalue) : la méthode est utilisée pour définir la valeur de la propriété d’alignement pour un nœud enfant dans le StackPane.

Essayons un exemple pour centrer le texte des nœuds dans un volet en utilisant le StackPane. Voir exemple :

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

Le code crée un texte et un cercle dans le StackPane et utilise l’alignement par défaut de la position centrale. Voir la sortie :

Centrer le texte dans le volet

Auteur: Sheeraz Gul
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

Article connexe - Java JavaFX