JavaFX - Texto

Assim como em várias formas, você também pode criar um nó de texto no JavaFX. O nó de texto é representado pela classe chamadaText, que pertence ao pacote javafx.scene.text.

Esta classe contém várias propriedades para criar texto em JavaFX e modificar sua aparência. Esta classe também herda a classe Shape que pertence ao pacotejavafx.scene.shape.

Portanto, além das propriedades do texto como fonte, alinhamento, espaçamento entre linhas, texto, etc. Ele também herda as propriedades básicas do nó de forma, como strokeFill, stroke, strokeWidth, strokeType, etc.

Criação de um nó de texto

Já a classe Texto da embalagem javafx.scene.text representa o nó de texto em JavaFX, você pode criar um texto instanciando essa classe da seguinte maneira -

Text text = new Text();

A classe Text contém uma propriedade chamada text do tipo string, que representa o texto a ser criado.

Depois de instanciar a classe Text, você precisa definir o valor para esta propriedade usando o setText() método conforme mostrado abaixo.

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

Você também pode definir a posição (origem) do texto, especificando os valores para as propriedades xey usando seus respectivos métodos de definição, a saber setX() e setY() conforme mostrado no seguinte bloco de código -

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

Exemplo

O programa a seguir é um exemplo que demonstra como criar um nó de texto no JavaFX. Salve este código em um arquivo com o nomeTextExample.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); 
   } 
}

Compile e execute o arquivo java salvo no prompt de comando usando os comandos a seguir.

javac TextExample.java 
java TextExample

Ao ser executado, o programa acima gera uma janela JavaFX exibindo o texto especificado da seguinte forma -

Posição e fonte do texto

Por padrão, o texto criado pela classe de texto é da fonte…, tamanho… e da cor preta.

Você pode alterar o tamanho da fonte e a cor do texto usando o setFont()método. Este método aceita um objeto daFont classe.

A classe chamada Font do pacote javafx.scene.texté usado para definir a fonte do texto. Esta classe contém um método estático chamadofont().

Este método aceita quatro parâmetros, a saber -

  • family - É do tipo String e representa a família da fonte que queremos aplicar ao texto.

  • weight- Esta propriedade representa o peso da fonte. Aceita 9 valores, que são -FontWeight.BLACK, FontWeight.BOLD, FontWeight.EXTRA_BOLD, FontWeight.EXTRA_LIGHT, LIGHT, MEDIUM, NORMAL, SEMI_BOLD, THIN.

  • posture- Esta propriedade representa a postura da fonte (regular ou itálico). Aceita dois valoresFontPosture.REGULAR e FontPosture.ITALIC.

  • size - Esta propriedade é do tipo double e representa o tamanho da fonte.

Você pode definir a fonte do texto usando o seguinte método -

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

Exemplo

O programa a seguir é um exemplo que demonstra como definir a fonte do nó de texto no JavaFX. Aqui, estamos configurando a fonte para Verdana, o peso para negrito, a postura para regular e o tamanho para 20.

Salve este código em um arquivo com o nome 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); 
   } 
}

Compile e execute o arquivo java salvo no prompt de comando usando os comandos a seguir.

javac TextFontExample.java 
java TextFontExample

Ao ser executado, o programa acima gera uma janela JavaFX exibindo o texto com a fonte especificada da seguinte maneira -

Traço e cor

A classe Text também herda a classe Shape do pacote. Portanto, você pode usarjavafx.scene.shape com o qual você também pode definir o traço e a cor do nó de texto.

Você pode definir a cor do texto usando o setFill() método da classe de forma (herdada) da seguinte maneira -

text.setFill(Color.BEIGE);

Da mesma forma, você pode definir a cor do traço do texto usando o método setStroke(). Embora a largura do traço possa ser definida usando o métodosetStrokeWidth() como segue -

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

Exemplo

O programa a seguir é um exemplo que demonstra como definir a cor, strokeWidth e strokeColor, do nó de texto. Neste código, definimos a cor do traço como - azul, a cor do texto como - marrom e a largura do traço como - 2.

Salve este código em um arquivo com o nome 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); 
   } 
}

Compile e execute o arquivo java salvo no prompt de comando usando os comandos a seguir.

javac StrokeExample.java 
java StrokeExample

Ao ser executado, o programa acima gera uma janela JavaFX exibindo o texto com o traço especificado e os atributos de cor da seguinte maneira -

Aplicação de decorações ao texto

Você também pode aplicar decorações como riscado; nesse caso, uma linha é passada através do texto. Você pode sublinhar um texto usando os métodos doText classe.

Você pode riscar o texto usando o método setStrikethrough(). Isso aceita um valor booleano, passe o valortrue a este método para percorrer o texto conforme mostrado na seguinte caixa de código -

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

Da mesma forma, você pode sublinhar um texto passando o valor true ao método setUnderLine() como segue -

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

Exemplo

O programa a seguir é um exemplo que demonstra como aplicar decorações como underline ou strike throughpara um texto. Salve este código em um arquivo com o nomeDecorationsExample.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); 
   } 
}

Compile e execute o arquivo Java salvo no prompt de comando usando os comandos a seguir.

javac DecorationsExample.java 
java DecorationsExample

Ao ser executado, o programa acima gera uma janela JavaFX conforme mostrado abaixo -