为什么我运行的 Java 应用程序中的字体在 Mac OS X 和 Windows 中看起来不同?

为什么我运行的 Java 应用程序中的字体在 Mac OS X 和 Windows 中看起来不同?

它们看起来不应该一模一样吗?还是 Java 没有自己的字体?它只是将字体名称映射到 OS 字体吗?

答案1

Java 通常使用系统字体,就像其他程序一样。根据规范:“Java 2 平台的所有实现都必须支持 TrueType 字体;对其他字体技术的支持取决于实现。”(Javadocsjava.awt.font)。

有一个问题:由于 Java 程序无法提前知道目标平台上有哪些字体可用,因此存在“逻辑字体名称”(“serif”、“monospaced”等)。这些在 Java 中始终可用;Java 运行时会将这些伪字体名称映射到系统上的适当字体。

此映射是可配置的。请参阅http://java.sun.com/j2se/1.5.0/docs/guide/intl/fontconfig.html

我怀疑有问题的 Java 应用程序使用了这些逻辑字体名称,它们只是映射到 Windows 和 Mac OS 上的不同字体。

答案2

最近你会看到“警告:字体“Times”不可用,因此已替换为“Lucida Bright”,但可能会出现意外的外观或行为。重新启用“Times”字体以删除此警告。”因此,由于此更改,你可以设置不同的字体

相关内容