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 -