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éfautPos.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 leStackPane
.
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 :
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