更改JavaFXWebView的默认字体
我使用嵌入在JPanel中的JavaFX2.2WebView来显示网页。除了我不喜欢的默认字体外,这个很好用。它看起来非常粗体/圆形/抗锯齿/模糊 左侧是我的Chrome浏览器中的文本,右侧是FX浏览器 它似乎正在使用“系统常规”字体作为默认字体,该字体由Font.getDefault()返回。我尝试过用反射来改变它,但浏览器仍然使用相同的字体。 此外,我还研究了更改JavaFXWebView的默认字体,java,javafx,webkit,Java,Javafx,Webkit,我使用嵌入在JPanel中的JavaFX2.2WebView来显示网页。除了我不喜欢的默认字体外,这个很好用。它看起来非常粗体/圆形/抗锯齿/模糊 左侧是我的Chrome浏览器中的文本,右侧是FX浏览器 它似乎正在使用“系统常规”字体作为默认字体,该字体由Font.getDefault()返回。我尝试过用反射来改变它,但浏览器仍然使用相同的字体。 此外,我还研究了WebView.setFontScale()和WebView.setFontSmoothingType(),第一种字体平滑类型只会改
WebView.setFontScale()
和WebView.setFontSmoothingType()
,第一种字体平滑类型只会改变大小,而后者只有第二种字体平滑类型,甚至比默认的更糟糕
我看了Safari,它和FXWebView一样,基于WebKit,这个浏览器有更改默认字体的选项(我认为大多数浏览器都有这个选项)
有人知道如何更改JavaFXWebView的默认字体吗
编辑:在此处提出功能请求:尝试使用where(我相信),某些平台的默认字体呈现机制已更新。您将需要评估自己在目标平台上的视力是否有所改善
还请注意有一个
WebView加载HTML,因此HTML中更改字体的标准方法适用于它(不推荐使用的HTML字体标记或CSS)
至于设置WebView使用的默认字体,我不知道有什么机制可以做到这一点。您可以针对JavaFX运行时项目创建一个。如果您记录一个功能请求,您可能希望引用,这表明此功能在Chrome中可用。这就是我更改默认字体的方式: 我曾经
engine.setUserStyleSheetLocation(getClass().getResource("style_html.css").toExternalForm());
在这个样式表中,我写道:
html {
font: 17px Impact; /*for example*/
}
这对我来说很好我找到了一个更简单的方法:
engine.setUserStyleSheetLocation("data:,body { font: 12px Arial; }");
我试过JDK 8,它看起来还是一样的,而且我认为用来设置默认字体的代码也没有改变,所以这可能就是原因。我会提出一个功能请求,谢谢你的回答。谢谢!这是一个好主意。我将上面的“12px”改为“12pt”,它包含在HTMLEditor组合框中,并且工作正常。