JavaFx之使用指定字体样式(二十九)

javafx use specified font 29

javafx默认的字体样式太丑,可能需要我们自定义字体样式。

javafx字符像素长度 javafx字体类型_java

之前说好放弃学习javafx,没想到越研究越深,底层代码看了不少哈哈。原来也挺简单的,so easy ~

一、准备字体

自定义字体样式,你得有字体。那就随便找个网站下载一个字体吧,这里就不给出网站了,你可以使用C:\Windows\Fonts\simfang.ttf 这个仿宋测试

二、代码

package top.lingkang.test.gui;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.stage.Stage;

import java.io.FileInputStream;

/**
 * @author lingkang
 * Created by 2022/9/19
 */
public class Test07 extends Application {
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {


        Font font = Font.loadFont(
                new FileInputStream("C:\\Users\\Administrator\\Desktop\\平方相思体.ttf"),
                14);
        // 注意 family=pingfangxiagnsiti
        // Font[name=pingfangxiagnsiti Regular, family=pingfangxiagnsiti, style=常规, size=12.0]
        System.out.println(font);

        Label label = new Label("hello 中文 哈喽");
        label.setStyle("-fx-font-weight: bold");

        VBox box = new VBox(new Label("中文字幕"), label);
        // 设置字体
        box.setStyle("-fx-font-family: pingfangxiagnsiti");
        primaryStage.setScene(new Scene(box, 400, 400));
        primaryStage.show();
    }
}

效果如下

javafx字符像素长度 javafx字体类型_java_02