JavaFX - tekst

Podobnie jak różne kształty, możesz również utworzyć węzeł tekstowy w JavaFX. Węzeł tekstowy jest reprezentowany przez nazwaną klasęText, który należy do pakietu javafx.scene.text.

Ta klasa zawiera kilka właściwości służących do tworzenia tekstu w JavaFX i modyfikowania jego wyglądu. Ta klasa dziedziczy również klasę Shape, która należy do pakietujavafx.scene.shape.

Dlatego oprócz właściwości tekstu, takich jak czcionka, wyrównanie, odstępy między wierszami, tekst itp. Dziedziczy również podstawowe właściwości węzła kształtu, takie jak strokeFill, stroke, strokeWidth, strokeType, itp.

Tworzenie węzła tekstowego

Ponieważ klasa Text pakietu javafx.scene.text reprezentuje węzeł tekstowy w JavaFX, możesz utworzyć tekst, tworząc wystąpienie tej klasy w następujący sposób -

Text text = new Text();

Klasa Text zawiera właściwość o nazwie text typu string, który reprezentuje tekst, który ma zostać utworzony.

Po utworzeniu wystąpienia klasy Text należy ustawić wartość tej właściwości przy użyciu setText() metoda, jak pokazano poniżej.

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

Możesz również ustawić pozycję (początek) tekstu, określając wartości właściwości x i y za pomocą odpowiednich metod ustawiających, a mianowicie setX() i setY() jak pokazano w poniższym bloku kodu -

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

Przykład

Poniższy program jest przykładem pokazującym, jak utworzyć węzeł tekstowy w JavaFX. Zapisz ten kod w pliku o nazwieTextExample.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); 
   } 
}

Skompiluj i uruchom zapisany plik java z wiersza poleceń, używając następujących poleceń.

javac TextExample.java 
java TextExample

Podczas wykonywania powyższy program generuje okno JavaFX wyświetlające określony tekst w następujący sposób -

Pozycja i czcionka tekstu

Domyślnie tekst utworzony przez klasę text ma czcionkę…, rozmiar… i kolor czarny.

Możesz zmienić rozmiar czcionki i kolor tekstu za pomocą setFont()metoda. Ta metoda akceptuje obiekt klasyFont klasa.

Klasa o nazwie Font pakietu javafx.scene.textsłuży do określenia czcionki tekstu. Ta klasa zawiera metodę statyczną o nazwiefont().

Ta metoda akceptuje cztery parametry, a mianowicie -

  • family - Jest to typ String i reprezentuje rodzinę czcionek, które chcemy zastosować w tekście.

  • weight- Ta właściwość reprezentuje wagę czcionki. Przyjmuje 9 wartości, którymi są -FontWeight.BLACK, FontWeight.BOLD, FontWeight.EXTRA_BOLD, FontWeight.EXTRA_LIGHT, LIGHT, MEDIUM, NORMAL, SEMI_BOLD, THIN.

  • posture- Ta właściwość reprezentuje pozycję czcionki (zwykła lub kursywa). Akceptuje dwie wartościFontPosture.REGULAR i FontPosture.ITALIC.

  • size - Ta właściwość jest typu double i reprezentuje rozmiar czcionki.

Możesz ustawić czcionkę w tekście za pomocą następującej metody -

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

Przykład

Poniższy program jest przykładem pokazującym, jak ustawić czcionkę węzła tekstowego w JavaFX. Tutaj ustawiamy czcionkę na Verdana, wagę na pogrubioną, postawę na regularną i rozmiar na 20.

Zapisz ten kod w pliku o nazwie 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); 
   } 
}

Skompiluj i uruchom zapisany plik java z wiersza poleceń, używając następujących poleceń.

javac TextFontExample.java 
java TextFontExample

Podczas wykonywania powyższy program generuje okno JavaFX wyświetlające tekst z określoną czcionką w następujący sposób -

Skok i kolor

Klasa Text dziedziczy również klasę Shape z pakietu. Dlatego możesz użyćjavafx.scene.shape za pomocą którego można ustawić obrys i kolor również dla węzła tekstowego.

Możesz ustawić kolor tekstu za pomocą setFill() metoda klasy shape (dziedziczona) w następujący sposób -

text.setFill(Color.BEIGE);

Podobnie możesz ustawić kolor obrysu tekstu za pomocą tej metody setStroke(). Natomiast szerokość obrysu można ustawić za pomocą metodysetStrokeWidth() w następujący sposób -

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

Przykład

Poniższy program jest przykładem, który demonstruje, jak ustawić kolor, strokeWidth i strokeColor węzła tekstowego. W tym kodzie ustawiamy kolor obrysu na - niebieski, kolor tekstu na - brązowy i szerokość obrysu na - 2.

Zapisz ten kod w pliku o nazwie 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); 
   } 
}

Skompiluj i uruchom zapisany plik java z wiersza poleceń, używając następujących poleceń.

javac StrokeExample.java 
java StrokeExample

Podczas wykonywania powyższy program generuje okno JavaFX wyświetlające tekst z określonymi atrybutami obrysu i koloru w następujący sposób -

Stosowanie dekoracji do tekstu

Możesz również zastosować dekoracje, takie jak przekreślenie; w takim przypadku wiersz przechodzi przez tekst. Możesz podkreślić tekst, korzystając z metodText klasa.

Możesz przekreślić tekst za pomocą metody setStrikethrough(). Przyjmuje wartość logiczną, przekazuje wartośćtrue do tej metody, aby przekreślić tekst, jak pokazano w poniższym polu kodu -

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

W ten sam sposób możesz podkreślić tekst, przekazując wartość true do metody setUnderLine() w następujący sposób -

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

Przykład

Poniższy program jest przykładem pokazującym, jak zastosować dekoracje, takie jak underline lub strike throughdo tekstu. Zapisz ten kod w pliku o nazwieDecorationsExample.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); 
   } 
}

Skompiluj i uruchom zapisany plik Java z wiersza poleceń, używając następujących poleceń.

javac DecorationsExample.java 
java DecorationsExample

Podczas wykonywania powyższy program generuje okno JavaFX, jak pokazano poniżej -