如何在 JavaFX 中添加自定义字体到文本?
您可以使用 **setFont()** 方法将所需的字体设置到 JavaFX 中的文本节点。此方法接受 **javafx.scene.text.Font** 类的对象。
**Font** 类表示 JavaFX 中的字体,此类提供名为 **font()** 的方法的多个变体,如下所示:
font(double size) font(String family) font(String family, double size) font(String family, FontPosture posture, double size) font(String family, FontWeight weight, double size) font(String family, FontWeight weight, FontPosture posture, double size)
所有这些方法都是静态的,并返回一个 Font 对象。要设置字体,您需要使用这些方法之一创建字体对象,然后使用 **setText()** 方法将创建的字体设置到文本。
创建自定义字体
此外,您还可以使用 **loadFont()** 方法加载自己的字体。此方法有两个变体:
一种方法接受 InputStream 类的对象(表示所需的字体)和一个表示大小的双精度变量作为参数。
一种方法接受一个表示字体 URL 的字符串变量和一个表示大小的双精度变量作为参数。
要加载自定义字体:
在您的项目文件夹中创建一个名为 resources/fonts 的目录。
下载所需的字体并将文件放置在上面创建的文件夹中。
使用 **loadFont()** 方法加载字体。
通过实例化 **javafx.scene.text.Text** 类来创建文本节点。
使用 **setText()** 方法将字体设置到文本。
示例
import java.io.FileNotFoundException; import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.effect.DropShadow; import javafx.scene.paint.Color; import javafx.stage.Stage; import javafx.scene.text.Font; import javafx.scene.text.Text; public class CustomFontExample extends Application { public void start(Stage stage) throws FileNotFoundException { //Creating a text object Text text = new Text(30.0, 75.0, "ట్యూ టోరియల్స్ పాయింట్ కి స్వా గతిం"); //Loading a font from local file system Font font = Font.loadFont("file:resources/fonts/TenaliRamakrishna-Regular.ttf", 45); //Setting the font text.setFont(font); //Setting color of the text text.setFill(Color.BROWN); text.setStroke(Color.BLUEVIOLET); text.setStrokeWidth(0.5); //Creating the inner shadow effect //Creating the drop shadow effect DropShadow shadow = new DropShadow(); shadow.setOffsetY(5.0); //Setting the effect to the text text.setEffect(shadow); //Setting the stage Group root = new Group(text); Scene scene = new Scene(root, 595, 150, Color.BEIGE); stage.setTitle("Custom Font"); stage.setScene(scene); stage.show(); } public static void main(String args[]){ launch(args); } }
输出
广告