我和一些同事正在用HTML编写帮助文档以与JavaFX WebView面板一起使用。我们希望它与UI的其余部分保持一致。通常我会在CSS文件中指定默认字体,但JavaFX应用程序的其余部分似乎使用默认的系统UI字体。
有没有办法以编程方式设置?我可以在.css中按名称选择Segoe UI,但无论平台如何,我们都希望它看起来正确。
答案 0 :(得分:1)
使用
Font.getDefault().getName()
获取默认字体名称,只需将其添加到即将添加到WebView
的HTML文件/字符串中。
示例:
cssString = cssString + "html { font-family: '" + Font.getDefault().getName() + "';}";
因为你应该比这更干净。
答案 1 :(得分:0)
如果我完全理解你,你需要一个应用程序的整个javafx部分的默认字体。我建议你这样做:
Font.loadFont
加载字体:
Font.loadFont(this.class.getClassLoader().getResource("fonts/YOURFONT.ttf").toExternalForm(), 10);
.root{ -fx-font-family: "YOURFONT"; }
之后,您需要加载application.css文件并在场景中设置它:
scene.getStylesheets().add(this.class.getClassLoader().getResource("css/application.css").toExternalForm());
我相信如果您不依赖于运行应用程序的系统,那就更好了,所以请在应用程序中打包字体。
对于html,你可以通过提供 @ font-face 与普通的css完全相同。