JavaFX - 布局窗格文本流

如果我们使用此布局,您可以在单个流中设置多个文本节点。包 javafx.scene.layout 中名为 textFlow 的类表示文本流。

此类提供两个属性,即 −

  • lineSpacing − 此属性为双精度类型,用于定义文本对象之间的间距。您可以使用名为 setLineSpacing() 的方法设置此属性。

  • textAlignment − 此属性表示窗格中文本对象的对齐方式。您可以使用方法 setTextAlignment() 设置此属性的值。您可以向此方法传递四个值:CENTER、JUSTIFY、LEFT、RIGHT。

示例

以下程序是文本流布局的示例。在此程序中,我们创建了三个文本对象,其字体为 15,颜色各异。然后,我们将它们添加到文本流窗格中,对齐值为 Justify,行距为 15

将此代码保存在名为 TextFlowExample.java 的文件中。

import javafx.application.Application; 
import javafx.collections.ObservableList; 
import javafx.scene.Scene; 
import javafx.scene.paint.Color; 
import javafx.scene.text.Font; 
import javafx.scene.text.Text; 
import javafx.scene.text.TextAlignment; 
import javafx.scene.text.TextFlow; 
import javafx.stage.Stage; 
         
public class TextFlowExample extends Application { 
   @Override 
   public void start(Stage stage) {
        //创建文本对象
        Text text1 = new Text("欢迎来到 Tutorialspoint ");
        
        //设置文本字体
        text1.setFont(new Font(15));
        
        //设置文本颜色
        text1.setFill(Color.DARKSLATEBLUE);
        
        Text text2 = new Text("我们为读者提供各种技术的免费教程 ");
        
        //设置文本字体
        text2.setFont(new Font(15));
        
        //设置文本颜色
        text2.setFill(Color.DARKGOLDENROD);
        Text text3 = new Text("
        最近我们也开始了免费视频教程 ");
        
        //设置文本字体
        text3.setFont(new Font(15));
        
        //设置文本颜色
        text3.setFill(Color.DARKGRAY);
        
        Text text4 = new Text("我们相信轻松学习");
        
        //为文本设置字体
        text4.setFont(new Font(15));
        text4.setFill(Color.MEDIUMVIOLETRED);
        
        //创建文本流平面
        TextFlow textFlowPane = new TextFlow();
        
        //设置文本对象之间的行距
        textFlowPane.setTextAlignment(TextAlignment.JUSTIFY);
        
        //设置宽度
        textFlowPane.setPrefSize(600, 300);
        
        //设置行距
        textFlowPane.setLineSpacing(5.0);
        
        //检索 TextFlow Pane 的可观察列表
        ObservableList list = textFlowPane.getChildren();
        
        //将圆柱体添加到窗格
        list.addAll(text1, text2, text3, text4);
        
        //创建场景对象
        Scene scene = new Scene(textFlowPane);
        
        //设置舞台(Stage)标题
        stage.setTitle("text Flow Pane Example");
        
        //将场景添加到舞台(Stage)
        stage.setScene(scene);
        
        //显示舞台(Stage)内容
        stage.show();
    }
   public static void main(String args[]){ 
      launch(args); 
   } 
}

使用以下命令从命令提示符编译并执行保存的 java 文件。

javac TextFlowExample.java 
java TextflowExample

执行时,上述程序将生成一个 JavaFX 窗口,如下所示。

文本流

javafx_layout_panes.html