JavaFX Text控件可以 在JavaFX GUI 中显示文本。JavaFX Text 控件由 JavaFX 类表示javafx.scene.text.Text。您可以设置文本控件使用的字体、文本大小、字体装饰和许多其他内容。
由于 JavaFX Text 控件是 JavaFX Shape 类的子类,因此 Text 类具有与其他 JavaFX Shape 对象相同的所有可用方法 - 例如填充和描边颜色和样式。
JavaFX Text 控件也是 JavaFX Node 类的子类,因此 Text 类也具有与任何其他 JavaFX Node 相同的所有可用方法,这意味着您可以对其设置效果等。

JavaFX 文本示例

这是一个简单、完整的 JavaFX 文本示例:

  1. import javafx.application.Application;
  2. import javafx.scene.Scene;
  3. import javafx.scene.layout.VBox;
  4. import javafx.scene.text.Text;
  5. import javafx.stage.Stage;
  6. public class Main extends Application {
  7. public static void main(String[] args) {
  8. launch(args);
  9. }
  10. public void start(Stage stage) {
  11. Text text = new Text("This is a JavaFX text.");
  12. Scene scene = new Scene(new VBox(text), 300, 250);
  13. stage.setScene(scene);
  14. stage.show();
  15. }
  16. }

image.png

设置文本

setText()您可以通过其方法 设置 JavaFX Text 对象的文本。下面是通过以下方式设置 JavaFX Text 控件的文本的示例setText():

  1. Text text = new Text();
  2. text.setText("This is the text to display");

设置字体

您可以通过其setFont()方法设置 JavaFX Text 控件的字体。下面是一个通过其setFont()方法设置 JavaFX Text 对象字体的示例:

  1. Text text = new Text("Some Text");
  2. text.setFont(Font.font("Arial"));

image.png
此示例设置 Text 控件使用的字体,以将文本呈现为 Arial 字体系列。
此示例中使用 的JavaFX Fontjavafx.scene.text.Font类就是该类。Font 类实际上还允许您指定字体粗细和字体大小。这是上面的示例,修改后还设置了 JavaFX Text 控件的字体粗细和字体大小:

  1. Text text = new Text("Some Text");
  2. text.setFont(Font.font("Arial", FontWeight.BOLD, 36));

image.png
此示例将字体粗细设置为粗体,将字体大小设置为 36。此示例中使用的 FontWeight 类就是javafx.scene.text.FontWeight该类。

设置填充颜色

作为一个形状,您可以设置 JavaFX 文本控件的填充颜色。填充颜色是用于绘制文本的“内部”颜色。您可以通过将JavaFX Color对象作为参数的setFill()方法设置 Text 控件的填充颜色。这是通过以下方式设置 JavaFX 文本控件的填充颜色的示例: setFill()

  1. text.setFill(Color.YELLOW);

image.png

设置描边颜色

作为 Shape,您还可以设置 JavaFX Text 控件的笔触颜色。描边颜色是用于绘制文本的“轮廓”或“边界”颜色。默认情况下,文本仅使用填充颜色呈现,但设置描边颜色可以添加一个不错的效果。您可以通过将JavaFX Color对象作为参数的setStroke()方法设置 Text 控件的笔触颜色。这是通过以下方式设置 JavaFX 文本控件的笔触颜色的示例: setStroke()

  1. text.setStroke(Color.GREEN);

image.png

文本 X 和 Y 位置

JavaFX Text 控件的 X 和 Y 位置决定了 Text 控件在其父容器元素内的显示位置——前提是父容器尊重该位置(Pane可以,VBox不可以)。您可以通过 Text 控件的方法setX()和setY(). 下面是设置 JavaFX Text 控件的 X 和 Y 位置的示例:

  1. Text text = new Text("This is a JavaFX text.");
  2. text.setFill(Color.CORAL);
  3. text.setStroke(Color.RED);
  4. text.setX(50);
  5. text.setY(25);
  6. text.setFont(Font.font("Arial", FontWeight.BOLD, 36));
  7. Scene scene = new Scene(new Group(text), 300, 250);
  8. stage.setScene(scene);
  9. stage.show();

多行文字

JavaFX Text 控件将根据以下规则将其显示的文本分成多行:

  • 如果文本包含换行符 (\n)。
  • 如果文本宽度超过 Text 控件上设置的换行宽度。

这是第一个显示包含换行符的文本的示例:

  1. Text text = new Text("This is a JavaFX text.\nLine 2");

Text 控件将中断“Line”之前的文本,因为String包含换行符。
下面是在 JavaFX Text 控件上设置文本换行宽度的示例:

  1. Text text = new Text("This is a longer JavaFX text.");
  2. text.setWrappingWidth(80);

image.png
JavaFX Text 控件将尝试断开单词之间的文本。因此,如果在特定单词之后的文本宽度比换行宽度宽,则 Text 控件将在使文本比换行宽度更宽的那个单词之前换行。

文本删除线

JavaFX Text 控件使您能够对它显示的文本应用删除线装饰。您可以通过 Text 方法启用删除线装饰setStrikethrough(),并将值true作为参数传递。参数值false将禁用删除线效果。以下是通过该方法 启用 JavaFX 文本删除线装饰 的示例:setStrikethrough()

  1. text.setStrikethrough(true);

image.png

文字下划线

JavaFX Text 控件使您能够将下划线装饰应用于它显示的文本。您可以通过 Text 方法启用下划线装饰setUnderline(),并将值 true作为参数传递。参数值false将禁用下划线装饰。下面是通过该方法 启用 JavaFX 文本下划线装饰 的示例:setUnderline()

  1. text.setUnderline(true);

image.png

字体平滑技术

JavaFX Text 控件包含两种不同的字体平滑(抗锯齿)技术,您可以从中进行选择。第一种技术称为 LCD,第二种称为 GREY。您可以通过该setFontSmoothingType()方法选择 Text 控件应使用的字体平滑技术。以下是将 LCD 和 GREY 设置为 JavaFX Text 控件上的字体平滑技术的示例:

  1. text.setFontSmoothingType(FontSmoothingType.GRAY);
  2. text.setFontSmoothingType(FontSmoothingType.LCD);

这两种字体平滑技术中的哪一种最适合您必须试验的应用程序。
image.png