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


15

我最近切换到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上正常工作。

Answers:


16

这个问题已经解决了很长时间,所以我决定应该发布解决方案。请注意,默认情况下问题仍然存在,但是可以通过参数解决。

添加此行:

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

/etc/environment修复该问题。

此修补程序自Ubuntu 16.04和OpenJDK 8u151起可用(尚未与Oracle JDK或Java 9进行检查)。

工作示例: 在此处输入图片说明

注意:某些字体和AA设置使问题复杂化。在jEdit中,所有内容均使用默认Java字体(称为“对话框”)。您可以为Text-Area使用不同的字体,但是Dialog是最适合按钮等的字体。我发现最佳的Text-Aa AA设置是标准的,但是您的行驶里程可能会有所不同。


1
您的解决方案效果很好!
Nadav B

1
从Ubuntu 18.10和OpenJDK 11开始再次需要。并且仍在工作!:)
tanius
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.