3

Helvetica 在 Windows、Mac OS X 和 Linux 上以一种或另一种形式提供。在 Windows 下,我可以从 Microsoft Word 中看到它。在两个 UNIX 平台上,我可以用 xlsfonts | 找到它。grep -i helvetica; 这个名字似乎是 adobe-helvetica。

但是JDK找不到!它没有从 GraphicsEnvironment.getAllFonts() 中列出,也没有在我调用 new Font("Helvetica", ...) [使用多个名称变体,例如 "Adobe Helvetica"] 时出现;相反,我默认为“Dialog”字体,它似乎用我使用的任何名称命名。

这种字体现在在每个相关的 Java 目标平台上都可用。如何在 Java 中使用它?

4

6 回答 6

4
Font f = new Font("Helvetica", Font.PLAIN, 10);  // make a new font object

ObjectName.setFont(f); // set the objects font using setFont();

其中“Helvetica”是字体,Font.PLAIN 定义样式,10 定义大小。当然它必须安装才能工作,你可以使用 CreateFont() 捆绑它。

尝试使用Java API for Fonts获得更多参考。

于 2008-12-17T18:57:10.110 回答
3

安装 TrueType 字体通常非常简单。我为我的项目使用 maven,所以我只是将字体文件保存在我的资源目录中并使用类加载器获取它。

InputStream is = MyClass.class.getClassLoader().getResourceAsStream("my/package/Avenir.ttf");
Font f = Font.createFont(Font.TRUETYPE_FONT, is);
is.close();

该字体应加载到内存中,以便使用字体名称在应用程序的其他地方使用。您可以确保这有效,并使用下面的代码查看您的系统上可以使用哪些字体。

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fontNames = ge.getAvailableFontFamilyNames();

for(String name : fontNames)
    System.out.println(name);
于 2009-03-30T17:43:13.630 回答
2

我意识到这实际上并没有回答这个问题,但是......

在 Windows 上,并不总是安装 Helvetica。尽管有 Microsoft Office XP,但我的工作机器(我现在正在使用的机器)却没有。

于 2008-12-17T18:48:40.767 回答
1

在 Linux 上,在 jre 或 jdk 目录中的某处有一个 font.properties 文件,您应该能够向其中添加新字体,但我尝试了无数种不同的方法来向其中添加字体,即使是那些操作系统知道并出现在 xlsfonts 中,但从未让它工作。

于 2008-12-17T19:32:36.810 回答
0

正式地,Java 中唯一保证附带的字体是 Lucida fronts(Bright、Sans 和 Typewriter)。根据 Java 的安装和配置,它可能能够从您机器的字体目录中读取前端,但这并不能保证。

如果它必须是 Helvetica,您可以将字体与 Font.CreateFont() 捆绑在一起,将一个表示类型(Font.BOLD 或 Font.PLAIN 等)的 int 和一个 InputStream 传递给 TrueType 字体。

于 2008-12-17T18:56:47.897 回答
-1

我认为如果您将字体文件放在 src 文件夹中并从那里调用它,它将起作用。

于 2008-12-17T18:59:39.277 回答