JavaFX - текст

Как и различные формы, вы также можете создать текстовый узел в JavaFX. Текстовый узел представлен классом с именемText, который принадлежит пакету javafx.scene.text.

Этот класс содержит несколько свойств для создания текста в JavaFX и изменения его внешнего вида. Этот класс также наследует класс Shape, который принадлежит пакетуjavafx.scene.shape.

Следовательно, в дополнение к свойствам текста, таким как шрифт, выравнивание, межстрочный интервал, текст и т. Д., Он также наследует основные свойства узла формы, такие как strokeFill, stroke, strokeWidth, strokeType, и т.п.

Создание текстового узла

Поскольку класс Text пакета javafx.scene.text представляет текстовый узел в JavaFX, вы можете создать текст, создав экземпляр этого класса следующим образом:

Text text = new Text();

Класс Text содержит свойство с именем text строкового типа, который представляет текст, который должен быть создан.

После создания экземпляра класса Text вам необходимо установить значение для этого свойства с помощью setText() метод, как показано ниже.

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

Вы также можете установить позицию (начало) текста, указав значения свойств x и y, используя их соответствующие методы установки, а именно setX() и setY() как показано в следующем блоке кода -

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

пример

Следующая программа представляет собой пример, демонстрирующий, как создать текстовый узел в JavaFX. Сохраните этот код в файле с именемTextExample.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); 
   } 
}

Скомпилируйте и выполните сохраненный файл java из командной строки, используя следующие команды.

javac TextExample.java 
java TextExample

При выполнении вышеуказанная программа генерирует окно JavaFX, отображающее указанный текст следующим образом:

Положение и шрифт текста

По умолчанию текст, созданный классом текста, имеет шрифт…, размер… и черный цвет.

Вы можете изменить размер шрифта и цвет текста, используя setFont()метод. Этот метод принимает объектFont класс.

Класс с именем Font пакета javafx.scene.textиспользуется для определения шрифта текста. Этот класс содержит статический метод с именемfont().

Этот метод принимает четыре параметра, а именно -

  • family - Это строковый тип и представляет семейство шрифтов, которые мы хотим применить к тексту.

  • weight- Это свойство представляет собой вес шрифта. Он принимает 9 значений, которые:FontWeight.BLACK, FontWeight.BOLD, FontWeight.EXTRA_BOLD, FontWeight.EXTRA_LIGHT, LIGHT, MEDIUM, NORMAL, SEMI_BOLD, THIN.

  • posture- Это свойство представляет положение шрифта (обычный или курсив). Он принимает два значенияFontPosture.REGULAR и FontPosture.ITALIC.

  • size - Это свойство имеет тип double и представляет размер шрифта.

Вы можете установить шрифт для текста, используя следующий метод -

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

пример

Следующая программа представляет собой пример, демонстрирующий, как установить шрифт текстового узла в JavaFX. Здесь мы устанавливаем шрифт Verdana, жирность - полужирный, положение - обычное, а размер - 20.

Сохраните этот код в файле с именем 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); 
   } 
}

Скомпилируйте и выполните сохраненный файл java из командной строки, используя следующие команды.

javac TextFontExample.java 
java TextFontExample

При выполнении вышеуказанная программа генерирует окно JavaFX, отображающее текст с указанным шрифтом следующим образом:

Обводка и цвет

Класс Text также наследует класс Shape пакета. Следовательно, вы можете использоватьjavafx.scene.shape с помощью которого вы также можете установить обводку и цвет для текстового узла.

Вы можете установить цвет текста, используя setFill() метод формы (унаследованного) класса следующим образом:

text.setFill(Color.BEIGE);

Точно так же вы можете установить цвет обводки текста с помощью метода setStroke(). Хотя ширину штриха можно установить с помощью методаsetStrokeWidth() следующим образом -

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

пример

Следующая программа представляет собой пример, демонстрирующий, как установить цвет, strokeWidth и strokeColor, текстового узла. В этом коде мы устанавливаем цвет обводки - синий, цвет текста - коричневый, а ширину обводки - 2.

Сохраните этот код в файле с именем 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); 
   } 
}

Скомпилируйте и выполните сохраненный файл java из командной строки, используя следующие команды.

javac StrokeExample.java 
java StrokeExample

При выполнении вышеуказанная программа генерирует окно JavaFX, отображающее текст с указанными штрихами и атрибутами цвета следующим образом:

Применение украшений к тексту

Вы также можете применить украшения, например, насквозь; в этом случае через текст проходит строка. Вы можете подчеркнуть текст, используя методыText класс.

Вы можете перечеркнуть текст, используя метод setStrikethrough(). Принимает логическое значение, передает значениеtrue этому методу, чтобы зачеркнуть текст, как показано в следующем поле кода -

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

Таким же образом вы можете подчеркнуть текст, передав значение true к методу setUnderLine() следующим образом -

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

пример

Следующая программа представляет собой пример, демонстрирующий, как применять украшения, такие как underline или же strike throughк тексту. Сохраните этот код в файле с именемDecorationsExample.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); 
   } 
}

Скомпилируйте и выполните сохраненный файл Java из командной строки, используя следующие команды.

javac DecorationsExample.java 
java DecorationsExample

При выполнении вышеуказанная программа генерирует окно JavaFX, как показано ниже -