Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改JavaFXWebView的默认字体_Java_Javafx_Webkit - Fatal编程技术网

更改JavaFXWebView的默认字体

更改JavaFXWebView的默认字体,java,javafx,webkit,Java,Javafx,Webkit,我使用嵌入在JPanel中的JavaFX2.2WebView来显示网页。除了我不喜欢的默认字体外,这个很好用。它看起来非常粗体/圆形/抗锯齿/模糊 左侧是我的Chrome浏览器中的文本,右侧是FX浏览器 它似乎正在使用“系统常规”字体作为默认字体,该字体由Font.getDefault()返回。我尝试过用反射来改变它,但浏览器仍然使用相同的字体。 此外,我还研究了WebView.setFontScale()和WebView.setFontSmoothingType(),第一种字体平滑类型只会改

我使用嵌入在JPanel中的JavaFX2.2WebView来显示网页。除了我不喜欢的默认字体外,这个很好用。它看起来非常粗体/圆形/抗锯齿/模糊

左侧是我的Chrome浏览器中的文本,右侧是FX浏览器

它似乎正在使用“系统常规”字体作为默认字体,该字体由Font.getDefault()返回。我尝试过用反射来改变它,但浏览器仍然使用相同的字体。 此外,我还研究了
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组合框中,并且工作正常。