JavaFX - Texte

Tout comme diverses formes, vous pouvez également créer un nœud de texte dans JavaFX. Le nœud de texte est représenté par la classe nomméeText, qui appartient au package javafx.scene.text.

Cette classe contient plusieurs propriétés pour créer du texte dans JavaFX et modifier son apparence. Cette classe hérite également de la classe Shape qui appartient au packagejavafx.scene.shape.

Par conséquent, en plus des propriétés du texte comme la police, l'alignement, l'interligne, le texte, etc. Il hérite également des propriétés de base des nœuds de forme telles que strokeFill, stroke, strokeWidth, strokeType, etc.

Création d'un nœud de texte

Depuis la classe Texte du package javafx.scene.text représente le nœud de texte dans JavaFX, vous pouvez créer un texte en instanciant cette classe comme suit -

Text text = new Text();

La classe Text contient une propriété nommée text de type chaîne, qui représente le texte à créer.

Après avoir instancié la classe Text, vous devez définir la valeur de cette propriété à l'aide de setText() méthode comme indiqué ci-dessous.

String text = "Hello how are you" 
Text.setText(text);

Vous pouvez également définir la position (origine) du texte en spécifiant les valeurs des propriétés x et y en utilisant leurs méthodes de définition respectives, à savoir setX() et setY() comme indiqué dans le bloc de code suivant -

text.setX(50); 
text.setY(50);

Exemple

Le programme suivant est un exemple montrant comment créer un nœud de texte dans JavaFX. Enregistrez ce code dans un fichier avec un nomTextExample.java.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene;
import javafx.stage.Stage; 
import javafx.scene.text.Text; 
         
public class TextExample extends Application { 
   @Override 
   public void start(Stage stage) {       
      //Creating a Text object 
      Text text = new Text();      
      
      //Setting the text to be added. 
      text.setText("Hello how are you"); 
       
      //setting the position of the text 
      text.setX(50); 
      text.setY(50); 
         
      //Creating a Group object  
      Group root = new Group(text);   
               
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Sample Application"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Compilez et exécutez le fichier java enregistré à partir de l'invite de commande à l'aide des commandes suivantes.

javac TextExample.java 
java TextExample

Lors de l'exécution, le programme ci-dessus génère une fenêtre JavaFX affichant le texte spécifié comme suit -

Position et police du texte

Par défaut, le texte créé par la classe de texte est de la police…, de la taille… et de la couleur noire.

Vous pouvez modifier la taille de la police et la couleur du texte à l'aide du setFont()méthode. Cette méthode accepte un objet duFont classe.

La classe nommée Font du forfait javafx.scene.textest utilisé pour définir la police du texte. Cette classe contient une méthode statique nomméefont().

Cette méthode accepte quatre paramètres à savoir -

  • family - Ceci est de type String et représente la famille de la police que nous voulons appliquer au texte.

  • weight- Cette propriété représente le poids de la police. Il accepte 9 valeurs, qui sont -FontWeight.BLACK, FontWeight.BOLD, FontWeight.EXTRA_BOLD, FontWeight.EXTRA_LIGHT, LIGHT, MEDIUM, NORMAL, SEMI_BOLD, THIN.

  • posture- Cette propriété représente la posture de la police (régulière ou italique). Il accepte deux valeursFontPosture.REGULAR et FontPosture.ITALIC.

  • size - Cette propriété est de type double et représente la taille de la police.

Vous pouvez définir la police du texte en utilisant la méthode suivante -

text.setFont(Font.font("verdana", FontWeight.BOLD, FontPosture.REGULAR, 20));

Exemple

Le programme suivant est un exemple montrant comment définir la police du nœud de texte dans JavaFX. Ici, nous définissons la police sur Verdana, le poids sur gras, la posture sur normal et la taille sur 20.

Enregistrez ce code dans un fichier avec le nom TextFontExample.java.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.stage.Stage; 
import javafx.scene.text.Font; 
import javafx.scene.text.FontPosture; 
import javafx.scene.text.FontWeight; 
import javafx.scene.text.Text; 
         
public class TextFontExample extends Application { 
   @Override 
   public void start(Stage stage) {       
      //Creating a Text object 
      Text text = new Text(); 
        
      //Setting font to the text 
      text.setFont(Font.font("verdana", FontWeight.BOLD, FontPosture.REGULAR, 20)); 
       
      //setting the position of the text
      text.setX(50); 
      text.setY(130);          
      
      //Setting the text to be added. 
      text.setText("Hi how are you"); 
         
      //Creating a Group object  
      Group root = new Group(text);   
               
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Setting Font to the text"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Compilez et exécutez le fichier java enregistré à partir de l'invite de commande à l'aide des commandes suivantes.

javac TextFontExample.java 
java TextFontExample

Lors de l'exécution, le programme ci-dessus génère une fenêtre JavaFX affichant le texte avec la police spécifiée comme suit -

Trait et couleur

La classe Text hérite également de la classe Shape du package. Par conséquent, vous pouvez utiliserjavafx.scene.shape avec lequel vous pouvez également définir le trait et la couleur du nœud de texte.

Vous pouvez définir la couleur du texte à l'aide du setFill() méthode de la classe de forme (héritée) comme suit -

text.setFill(Color.BEIGE);

De même, vous pouvez définir la couleur du trait du texte à l'aide de la méthode setStroke(). Alors que la largeur du trait peut être définie à l'aide de la méthodesetStrokeWidth() comme suit -

//Setting the color 
text.setFill(Color.BROWN); 
        
//Setting the Stroke  
text.setStrokeWidth(2); 
       
//Setting the stroke color 
text.setStroke(Color.BLUE);

Exemple

Le programme suivant est un exemple qui montre comment définir la couleur, strokeWidth et strokeColor, du nœud de texte. Dans ce code, nous définissons la couleur du trait sur - bleu, la couleur du texte sur - marron et la largeur du trait sur - 2.

Enregistrez ce code dans un fichier avec le nom StrokeExample.java.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.paint.Color; 
import javafx.stage.Stage; 
import javafx.scene.text.Font; 
import javafx.scene.text.FontPosture; 
import javafx.scene.text.FontWeight; 
import javafx.scene.text.Text; 
         
public class StrokeExample extends Application { 
   @Override 
   public void start(Stage stage) {       
      //Creating a Text object 
      Text text = new Text(); 
       
      //Setting font to the text 
      text.setFont(Font.font("verdana", FontWeight.BOLD, FontPosture.REGULAR, 50)); 
       
      //setting the position of the text  
      text.setX(50); 
      text.setY(130);     
       
      //Setting the color 
      text.setFill(Color.BROWN); 
       
      //Setting the Stroke  
      text.setStrokeWidth(2); 
      
      // Setting the stroke color
      text.setStroke(Color.BLUE);        
      
      //Setting the text to be added. 
      text.setText("Hi how are you"); 
         
      //Creating a Group object  
      Group root = new Group(text);   
               
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Setting font to the text"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Compilez et exécutez le fichier java enregistré à partir de l'invite de commande à l'aide des commandes suivantes.

javac StrokeExample.java 
java StrokeExample

Lors de l'exécution, le programme ci-dessus génère une fenêtre JavaFX affichant le texte avec les attributs de trait et de couleur spécifiés comme suit -

Application de décorations au texte

Vous pouvez également appliquer des décorations telles que barrer; auquel cas une ligne est passée dans le texte. Vous pouvez souligner un texte en utilisant les méthodes duText classe.

Vous pouvez parcourir le texte en utilisant la méthode setStrikethrough(). Cela accepte une valeur booléenne, passez la valeurtrue à cette méthode pour barrer le texte comme indiqué dans la zone de code suivante -

//Striking through the text 
text1.setStrikethrough(true);

De la même manière, vous pouvez souligner un texte en passant la valeur true à la méthode setUnderLine() comme suit -

//underlining the text     
text2.setUnderline(true);

Exemple

Le programme suivant est un exemple montrant comment appliquer des décorations telles que underline ou strike throughà un texte. Enregistrez ce code dans un fichier avec le nomDecorationsExample.java.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.stage.Stage; 
import javafx.scene.text.Font; 
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight; 
import javafx.scene.text.Text; 
         
public class DecorationsExample extends Application { 
   @Override 
   public void start(Stage stage) {       
      //Creating a Text_Example object 
      Text text1 = new Text("Hi how are you");       
      
      //Setting font to the text 
      text1.setFont(Font.font("verdana", FontWeight.BOLD, FontPosture.REGULAR, 20));
      
      //setting the position of the text 
      text1.setX(50); 
      text1.setY(75);     
      
      //Striking through the text 
      text1.setStrikethrough(true); 
       
      //Creating a Text_Example object  
      Text text2 = new Text("Welcome to Tutorialspoint");     
      
      //Setting font to the text 
      text2.setFont(Font.font("verdana", FontWeight.BOLD, FontPosture.REGULAR, 20));
      
      //setting the position of the text 
      text2.setX(50); 
      text2.setY(150);      
      
      //underlining the text     
      text2.setUnderline(true);  
         
      //Creating a Group object  
      Group root = new Group(text1, text2);   
               
      //Creating a scene object
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Decorations Example"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes.

javac DecorationsExample.java 
java DecorationsExample

Lors de l'exécution, le programme ci-dessus génère une fenêtre JavaFX comme indiqué ci-dessous -