如何在JavaFXWebView中指定与默认UI字体相同的默认字体

如何在JavaFXWebView中指定与默认UI字体相同的默认字体,java,css,javafx,fonts,Java,Css,Javafx,Fonts,我和一些同事正在用HTML编写帮助文档,用于JavaFXWebView面板。我们希望它与UI的其他部分保持一致。通常我会在CSS文件中指定默认字体,但JavaFX应用程序的其余部分似乎使用默认的系统UI字体 有没有办法以编程方式设置此选项?我可以在.css中按名称选择Segoe UI,但无论平台如何,我们都希望它看起来正确。如果我完全理解您的意思,您希望应用程序的整个javafx部分使用默认字体。我建议你这样做: 下载自己的字体作为.ttf,并将其添加到应用程序中的资源中 使用静态功能加载字体。

我和一些同事正在用HTML编写帮助文档,用于JavaFXWebView面板。我们希望它与UI的其他部分保持一致。通常我会在CSS文件中指定默认字体,但JavaFX应用程序的其余部分似乎使用默认的系统UI字体


有没有办法以编程方式设置此选项?我可以在.css中按名称选择Segoe UI,但无论平台如何,我们都希望它看起来正确。

如果我完全理解您的意思,您希望应用程序的整个javafx部分使用默认字体。我建议你这样做:

  • 下载自己的字体作为.ttf,并将其添加到应用程序中的资源中
  • 使用静态功能加载字体。加载字体:
    Font.loadFont(this.class.getClassLoader().getResource(“Font/YOURFONT.ttf”).toExternalForm(),10)
  • 现在将字体设置为应用程序的根。我建议按建议使用css:在您的应用程序中。css添加:
    
    .root{-fx字体系列:“YOURFONT”;}
    
    之后,您需要加载application.css文件并在场景中进行设置:
    scene.getStylesheets().add(this.class.getClassLoader().getResource(“css/application.css”).toExternalForm())
  • 我认为,如果你不依赖于你的应用程序运行的系统,那就更好了,所以在你的应用程序中打包字体

    对于html,您可以通过提供一个@font-face

    使用,来完成与普通css完全相同的事情

    Font.getDefault().getName()   
    
    要获取默认字体名称,只需将其添加到HTML文件/字符串中,该文件/字符串将被添加到
    WebView

    例如:

    cssString = cssString + "html { font-family: '" + Font.getDefault().getName() + "';}";
    

    当然,你应该做得比这更干净。

    嗯。。。这似乎是不必要的工作;我们只想使用系统字体,不提供任何.ttf文件。