fonts - 如何在 JavaFX 字体中强制抗锯齿?

标签 fonts javafx antialiasing

在测试我的 JavaFX 8 应用程序的 GUI 时,我注意到一些标签没有显示抗锯齿文本。经过一番谷歌搜索和挣扎,我发现了一件非常烦人的事情正在发生。抗锯齿仅应用于字体大小大于 80 像素的标签。下面是一个比较应用了 AA 的 JavaFX 和 Swing 应用程序的示例:

enter image description here

示例代码:https://gist.github.com/anonymous/be60bb89181376ff12aa

有没有办法在所有字体大小中强制使用 AA?
你也有这种情况吗?我在 JavaFX Jira 上搜索了类似的错误,但到目前为止没有人提示。也许我应该为此打开一个?

一些可能有帮助的信息:

java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)
Windows 8.1 64 bits [Version 6.3.9600]

最佳答案

默认情况下,JavaFX 8 使用 modena.css设置 LCD 抗锯齿,这在某些情况下似乎不会平滑字体。当字体大小大于 80 px 时,AA 技术会切换到灰度 AA(出于性能原因)。因此,要实现任何尺寸的平滑边缘,灰度 AA 应该改用。
这可以通过 JavaFX CSS 来完成:

.text{
    -fx-font-smoothing-type: gray;
}
或系统参数:
-Dprism.lcdtext=false
或者设置系统属性(在加载 FXML 之前):
System.setProperty("prism.lcdtext", "false");
感谢所有在 Jira 上回复的人!

关于fonts - 如何在 JavaFX 字体中强制抗锯齿?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24254000/

相关文章:

javascript - 5x5显示屏上的平滑点,如何避免阶梯效应?

java - InvalidationListener 与 ChangeListener

具有高分辨率的 jquery 移动平板电脑

python - openpyxl 字体条件格式

html - Outlook 中的字体太大

java - 如何仅从 JavaFx 图表中的选定系列中删除符号标记?

scroll - 如何在 setText 之后滚动 JavaFX TextArea

antialiasing - HTML页面中的抗锯齿字体

php - 为什么这个透明的 PNG 在使用 GD 组合时会产生边框?

java - 为什么deriveFont(float size)不改变JButton中的字体大小?