Java-Swing 应用程序中的丑陋/非抗锯齿字体

Java-Swing 应用程序中的丑陋/非抗锯齿字体

我最近切换到了 Ubuntu,并使用 webupd8team/java 存储库安装了 Oracle 的 Java JDK 8u45(32 位)。

一切似乎都运行良好,只是 Java-Swing 应用程序的字体破损且难看,没有抗锯齿功能。更改字体不起作用。本机应用程序(如 Gedit)虽然具有相同的字体,但不受影响(非 Swing Java 应用程序(如 Eclipse)也不受影响);它只影响基于 Swing 的应用程序。

截图:(jEdit v5.1)

jEdit 的屏幕截图

我正在运行 Ubuntu 15.04(截至 2015-06-15 的最新版本)。我的 Java 版本是 1.8.0_45,并且“java -version”给出以下输出:

java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) Server VM (build 25.45-b02, mixed mode)

我尝试了类似问题中给出的修复方法(此处和其他 stackexchange 网站上的修复方法),但不起作用。我还在 /etc/environment 中添加了以下几行(如下所示:https://wiki.archlinux.org/index.php/Java_Runtime_Environment_Fonts),但它们没有给我任何明显的结果。

JAVA_FONTS=/usr/share/fonts/truetype
_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'

我确信一定有办法解决这个问题。相同的 Java 应用程序在 Windows 7 上正常运行。

答案1

这个问题早就解决了,所以我决定发布解决方案。请注意,默认情况下该问题仍然存在,但可以通过参数修复。

添加此行:

_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true'

修复/etc/environment了该问题。

此修复适用于 Ubuntu 16.04 和 OpenJDK 8u151(尚未使用 Oracle JDK 或 Java 9 进行检查)。

工作示例: 在此处输入图片描述

笔记:某些字体和 AA 设置使问题复杂化。在 jEdit 中,我对所有内容都使用默认 Java 字体(称为“Dialog”)。您可能可以为文本区域使用不同的字体,但 Dialog 最适合按钮等。我发现的最佳文本区域 AA 设置是标准但你的里程可能会有所不同。

相关内容