如何在JavaFX中使文本在窗口宽度内换行?


在JavaFX中,文本节点由Javafx.scene.text.Text类表示。要在JavaFx窗口中插入/显示文本,您需要:

  • 实例化Text类。

  • 使用setter方法或将它们作为参数传递给构造函数来设置基本属性,例如位置和文本字符串。

  • 将创建的节点添加到Group对象。

如果传递的文本中行的长度超过窗口宽度,则部分文本将被截断,如下所示:

作为解决方案,您可以通过使用setWrappingWidth()方法为wrapping属性设置值,从而在窗口宽度内换行。

此方法接受一个双精度值,表示文本的宽度(以像素为单位)。如果您传入的值小于窗口宽度,则文本将在其中(给定宽度)换行。

示例

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.Scanner;
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 WrappingTheText extends Application {
   public void start(Stage stage) throws FileNotFoundException {
      //Reading the contents of a text file.
      InputStream inputStream = new FileInputStream("D:\sample.txt");
      Scanner sc = new Scanner(inputStream);
      StringBuffer sb = new StringBuffer();
      while(sc.hasNext()) {
         sb.append(" "+sc.nextLine()+"\n");
      }
      //Creating a text object
      Text text = new Text(10.0, 25.0, sb.toString());
      //Wrapping the text
      text.setWrappingWidth(590);
      //Setting the stage
      Group root = new Group(text);
      Scene scene = new Scene(root, 595, 300, Color.BEIGE);
      stage.setTitle("Wrapping The Text");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]){
      launch(args);
   }
}

sample.txt

假设以下是sample.txt文件的内容:

JavaFX is a Java library used to build Rich Internet Applications. The applications written 
using this library can run consistently across multiple platforms. The applications developed 
using JavaFX can run on various devices such as Desktop Computers, Mobile Phones, TVs, Tablets, etc..
To develop GUI Applications using Java programming language, the programmers rely on libraries 
such as Advanced Windowing Tool kit and Swing. After the advent of JavaFX, these Java programmers 
can now develop GUI applications effectively with rich content.

输出

Font Name: Brush Script MT

输出

更新于:2020年4月14日

2K+浏览量

启动你的职业生涯

通过完成课程获得认证

开始学习
广告