将字体添加到 Swing 应用程序并包含在包中

2022-09-03 00:05:32

我需要在我的 Java Swing 应用程序中使用自定义字体 (ttf)。如何将它们添加到我的软件包中并使用它们?

我的意思是,我只是将它们安装在Windows中,然后使用它们,但我不希望应用程序的使用会如此复杂,在使用我的应用程序之前告诉用户安装字体不是很方便。


答案 1

您可以通过以下方式加载它们:InputStream

InputStream is = MyClass.class.getResourceAsStream("TestFont.ttf");
Font font = Font.createFont(Font.TRUETYPE_FONT, is);

此加载的字体没有预定义的字体设置,因此要使用,您必须执行以下操作:

Font sizedFont = font.deriveFont(12f);
myLabel.setFont(sizedFont);

看:

物理和逻辑字体


答案 2

正如Reimus所说,您可以使用.您还可以使用 :InputStreamFile

File font_file = new File("TestFont.ttf");
Font font = Font.createFont(Font.TRUETYPE_FONT, font_file);

在这两种情况下,您都可以将字体文件放在项目的根目录或某个子目录中。根目录应该是运行程序的目录。例如,如果您有一个目录结构,例如:

My_Program
|
|-Fonts
| |-TestFont.ttf
|-bin
  |-prog.class

您将使用 从目录中运行程序。然后在代码中,要传递给 or 的文件路径和名称将为 。My_Programjava bin/progInputStreamFile"Fonts/TestFont.ttf"


推荐