JavaFX | TextFlow Класс

Опубликовано: 12 Февраля, 2022

Класс TextFlow является частью JavaFX. Класс TextFlow предназначен для разметки форматированного текста. Его можно использовать для размещения нескольких текстовых узлов в одном текстовом потоке. Класс TextFlow расширяет класс Pane.

Конструкторы класса:

  1. TextFlow () : создать новый объект текстового потока.
  2. TextFlow (Узел… c) : Создайте новый объект текстового потока с указанными узлами.

Часто используемые методы:

Метод Объяснение
getLineSpacing () Возвращает межстрочный интервал текста.
getTextAlignment () Возвращает выравнивание текста в потоке текста.
setLineSpacing (двойные s) Установите межстрочный интервал текста.
setTextAlignment (TextAlignment v) Устанавливает выравнивание текста в потоке текста.

Below programs illustrate the use of TextFlow class:

  1. Java program to create a TextFlow and add text object to it: In this program we will create a TextFlow named text_flow and two Text named text_1 and text_2. Set the fill and font using setFill() and setFont(). We will add the text to the text_flow using the getChildren().add() function. Add the text_flow to the scene and scene to the stage. Call the show() function to display the final results.
    // Java program to create a TextFlow and 
    // add text object to it .
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.layout.*;
    import javafx.stage.Stage;
    import javafx.event.ActionEvent;
    import javafx.scene.paint.*;
    import javafx.scene.text.*;
    import javafx.scene.web.*;
    import javafx.scene.layout.*;
    import javafx.scene.shape.*;
      
    public class TextFlow_0 extends Application {
      
        // launch the application
        public void start(Stage stage)
        {
      
            try {
      
                // set title for the stage
                stage.setTitle("TextFlow");
      
                // create TextFlow
                TextFlow text_flow = new TextFlow();
      
                // create text
                Text text_1 = new Text("GeeksforGeeks ");
      
                // set the text color
                text_1.setFill(Color.RED);
      
                // set font of the text
                text_1.setFont(Font.font("Verdana", 25));
      
                // create text
                Text text_2 = new Text("The computer science portal for geeks");
      
                // set the text color
                text_2.setFill(Color.BLUE);
      
                // set font of the text
                text_2.setFont(Font.font("Helvetica", FontPosture.ITALIC, 15));
      
                // add text to textflow
                text_flow.getChildren().add(text_1);
                text_flow.getChildren().add(text_2);
      
                // create a scene
                Scene scene = new Scene(text_flow, 400, 300);
      
                // set the scene
                stage.setScene(scene);
      
                stage.show();
            }
      
            catch (Exception e) {
      
                System.out.println(e.getMessage());
            }
        }
      
        // Main Method
        public static void main(String args[])
        {
      
            // launch the application
            launch(args);
        }
    }

    Output:

  2. Java program to create a TextFlow and add text object to it, set text Alignment and set line spacing of the text flow: In this program we will create a TextFlow named text_flow and two Text named text_1 and text_2. Set the fill and font using setFill() and setFont(). Set TextAlignment using setTextAlignment() and set the line spacing using the setLineSpacing() function. Add the text to the text_flow using the getChildren().add() function. Add the text_flow to the Vbox. Add the vbox scene and the scene to the stage. Call the show() function to display the final results.
    // Java program to create a TextFlow and 
    // add text object to it, set text Alignment
    // and set line spacing of the text flow.
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.layout.*;
    import javafx.stage.Stage;
    import javafx.scene.layout.*;
    import javafx.scene.paint.*;
    import javafx.scene.text.*;
    import javafx.geometry.*;
    import javafx.scene.layout.*;
    import javafx.scene.shape.*;
      
    public class TextFlow_1 extends Application {
      
        // launch the application
        public void start(Stage stage)
        {
      
            try {
      
                // set title for the stage
                stage.setTitle("FlowPane");
      
                // create TextFlow
                TextFlow text_flow = new TextFlow();
      
                // create text
                Text text_1 = new Text("GeeksforGeeks ");
      
                // set the text color
                text_1.setFill(Color.GREEN);
      
                // set font of the text
                text_1.setFont(Font.font("Verdana", 25));
      
                // create text
                Text text_2 = new Text("The computer science portal for geeks");
      
                // set the text color
                text_2.setFill(Color.BLUE);
      
                // set font of the text
                text_2.setFont(Font.font("Helvetica", FontPosture.ITALIC, 15));
      
                // add text to textflow
                text_flow.getChildren().add(text_1);
                text_flow.getChildren().add(text_2);
      
                // set text Alignment
                text_flow.setTextAlignment(TextAlignment.CENTER);
      
                // set line spacing
                text_flow.setLineSpacing(20.0f);
      
                // create VBox
                VBox vbox = new VBox(text_flow);
      
                // set alignment of vbox
                vbox.setAlignment(Pos.CENTER);
      
                // create a scene
                Scene scene = new Scene(vbox, 400, 300);
      
                // set the scene
                stage.setScene(scene);
      
                stage.show();
            }
      
            catch (Exception e) {
      
                System.out.println(e.getMessage());
            }
        }
      
        // Main Method
        public static void main(String args[])
        {
      
            // launch the application
            launch(args);
        }
    }

    Output:

Note: The above programs might not run in an online IDE please use an offline compiler.

Reference: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/text/TextFlow.html

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.