Arial字体的跨平台解决方案

时间:2012-03-15 16:00:38

标签: java swing fonts

在我的Swing应用程序中,我使用Arial字体。不幸的是,它在不同平台上的呈现方式不同:

Windows:

Windows variant

Mac OS X:

enter image description here

Linux:

enter image description here

Windows和Mac OS X变体看起来几乎相同。 Linux是完全不同的,似乎根本不是Arial。主要问题是字母的宽度不同......

在Linux上呈现类似于Windows变体的文本的最佳解决方案是什么?可能是一些替代字体,例如Nimbus Sans L?

一些限制:JRE无法与应用程序一起提供,它应该非常接近Arial。

谢谢!

4 个答案:

答案 0 :(得分:5)

拥抱平台种类。鉴于不同的平台具有相似的字体和不同的度量标准,让每个组件通过不干扰和正确使用布局来完成计算自己的preferred size的工作。这是一个很好的example屏幕截图。

答案 1 :(得分:2)

一种解决方案可能是使用Font.createFont()加载字体文件。 Here's样本。

答案 2 :(得分:0)

您是否尝试过抗锯齿,就像这篇文章一样 http://docs.oracle.com/javase/tutorial/2d/text/renderinghints.html

答案 3 :(得分:0)

您可以在Linux上安装Microsoft的免费字体并在Java中使用它们。这包括Arial字体。此博客文章向您展示了如何:How to Install Windows Fonts in Java on Linux