JavaFX - Testo

Proprio come le varie forme, puoi anche creare un nodo di testo in JavaFX. Il nodo di testo è rappresentato dalla classe denominataText, che appartiene al pacchetto javafx.scene.text.

Questa classe contiene diverse proprietà per creare testo in JavaFX e modificarne l'aspetto. Questa classe eredita anche la classe Shape che appartiene al pacchettojavafx.scene.shape.

Pertanto, oltre alle proprietà del testo come carattere, allineamento, interlinea, testo, ecc. Eredita anche le proprietà del nodo forma di base come strokeFill, stroke, strokeWidth, strokeType, eccetera.

Creazione di un nodo di testo

Poiché la classe Text del pacchetto javafx.scene.text rappresenta il nodo di testo in JavaFX, puoi creare un testo istanziando questa classe come segue:

Text text = new Text();

La classe Text contiene una proprietà denominata text di tipo stringa, che rappresenta il testo che deve essere creato.

Dopo aver creato un'istanza della classe Text, è necessario impostare il valore su questa proprietà utilizzando il setText() metodo come mostrato di seguito.

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

Puoi anche impostare la posizione (origine) del testo specificando i valori delle proprietà xey usando i rispettivi metodi setter, vale a dire setX() e setY() come mostrato nel seguente blocco di codice -

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

Esempio

Il seguente programma è un esempio che dimostra come creare un nodo di testo in JavaFX. Salva questo codice in un file con 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); 
   } 
}

Compilare ed eseguire il file java salvato dal prompt dei comandi utilizzando i seguenti comandi.

javac TextExample.java 
java TextExample

All'esecuzione, il programma di cui sopra genera una finestra JavaFX che mostra il testo specificato come segue:

Posizione e carattere del testo

Per impostazione predefinita, il testo creato dalla classe di testo è del tipo di carattere ..., dimensione ... e di colore nero.

È possibile modificare la dimensione del carattere e il colore del testo utilizzando il setFont()metodo. Questo metodo accetta un oggetto diFont classe.

La classe denominata Font del pacchetto javafx.scene.textviene utilizzato per definire il carattere del testo. Questa classe contiene un metodo statico denominatofont().

Questo metodo accetta quattro parametri, ovvero:

  • family - Questo è di tipo String e rappresenta la famiglia del font che vogliamo applicare al testo.

  • weight- Questa proprietà rappresenta il peso del carattere. Accetta 9 valori, che sono:FontWeight.BLACK, FontWeight.BOLD, FontWeight.EXTRA_BOLD, FontWeight.EXTRA_LIGHT, LIGHT, MEDIUM, NORMAL, SEMI_BOLD, THIN.

  • posture- Questa proprietà rappresenta la postura del carattere (normale o corsivo). Accetta due valoriFontPosture.REGULAR e FontPosture.ITALIC.

  • size - Questa proprietà è di tipo double e rappresenta la dimensione del carattere.

È possibile impostare il carattere sul testo utilizzando il seguente metodo:

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

Esempio

Il seguente programma è un esempio che dimostra come impostare il carattere del nodo di testo in JavaFX. Qui stiamo impostando il carattere su Verdana, il peso su grassetto, la postura su normale e la dimensione su 20.

Salva questo codice in un file con il 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); 
   } 
}

Compilare ed eseguire il file java salvato dal prompt dei comandi utilizzando i seguenti comandi.

javac TextFontExample.java 
java TextFontExample

All'esecuzione, il programma di cui sopra genera una finestra JavaFX che mostra il testo con il carattere specificato come segue:

Tratto e colore

La classe Text eredita anche la classe Shape del pacchetto. Pertanto, puoi usarejavafx.scene.shape con il quale puoi impostare anche il tratto e il colore del nodo di testo.

È possibile impostare il colore del testo utilizzando il setFill() metodo della classe shape (ereditata) come segue:

text.setFill(Color.BEIGE);

Allo stesso modo, puoi impostare il colore del tratto del testo utilizzando il metodo setStroke(). Mentre la larghezza del tratto può essere impostata utilizzando il metodosetStrokeWidth() come segue -

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

Esempio

Il seguente programma è un esempio che mostra come impostare il colore, strokeWidth e strokeColor, del nodo di testo. In questo codice, impostiamo il colore del tratto su - blu, il colore del testo su - marrone e la larghezza del tratto su - 2.

Salva questo codice in un file con il 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); 
   } 
}

Compilare ed eseguire il file java salvato dal prompt dei comandi utilizzando i seguenti comandi.

javac StrokeExample.java 
java StrokeExample

All'esecuzione, il programma di cui sopra genera una finestra JavaFX che mostra il testo con gli attributi di tratto e colore specificati come segue:

Applicazione di decorazioni al testo

Puoi anche applicare decorazioni come strike through; in tal caso viene passata una riga nel testo. È possibile sottolineare un testo utilizzando i metodi diText classe.

Puoi barrare il testo usando il metodo setStrikethrough(). Questo accetta un valore booleano, passare il valoretrue a questo metodo per barrare il testo come mostrato nella casella del codice seguente:

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

Allo stesso modo, puoi sottolineare un testo passando il valore true al metodo setUnderLine() come segue -

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

Esempio

Il seguente programma è un esempio che mostra come applicare decorazioni come underline o strike througha un testo. Salva questo codice in un file con il 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); 
   } 
}

Compilare ed eseguire il file Java salvato dal prompt dei comandi utilizzando i seguenti comandi.

javac DecorationsExample.java 
java DecorationsExample

All'esecuzione, il programma sopra genera una finestra JavaFX come mostrato di seguito -