首页 > 解决方案 > 如何在 Javafx 应用程序中加载自定义字体

问题描述

我正在尝试将自定义字体加载到我的 JavaFx 应用程序中,并且它曾经工作过一次。重新启动 IDE 后,字体消失了,标准字体已加载

Font ZOMBEY = Font.loadFont(getClass().getResourcesAsStream("css/ZOMBYE.otf"), 20;
Font TradeWinds =   Font.loadFont(getClass().getResourceAsStream("css/TradeWinds-Regular.ttf"), 20);
Font Bock = Font.loadFont(getClass().getResourceAsStream("css/Bock_Personaluse.otf"), 20);

项目结构看起来像这样

标签: javafxfontsfxml

解决方案


这应该有效:

InputStream is = getClass().getResourceAsStream("/sample/fonts/ZOMBYE.otf");
assert is != null;

不要忘记通过-eaVM 选项启用断言。

注意'sample'前面的'/',我想知道你是如何编译你的代码的,因为在你的第一行代码中没有方法getResourcesAsStream(注意Resource后面的's')。


推荐阅读