将字体导入java(不使用Swing)

Posted

技术标签:

【中文标题】将字体导入java(不使用Swing)【英文标题】:Importing fonts into java (not using Swing) 【发布时间】:2014-11-07 09:18:10 【问题描述】:

如何使用 AWT 将字体导入 Java 小程序?我不想要 Swing 中的解决方案,所以如果这是您的建议,请不要打扰,谢谢。

我知道我必须拥有 TTF 文件,但我不知道如何让我的小程序使用该文件作为我的文本。

【问题讨论】:

java.awt.Font被AWT和Swing都使用,所以加载字体的过程是一样的 那么如何导入自定义字体文件? 1) 为什么要编写小程序?如果是老师指定的,请参考Why CS teachers should stop teaching Java applets。 2) 为什么使用 AWT?请参阅 this answer 了解放弃 AWT 使用支持 Swing 的组件的许多充分理由。 【参考方案1】:
    使用Font#createFont(int, InputStream)加载字体 .可以直接使用,但最好... 向系统注册字体GraphicsEnvironment#registerFont

如前所述:

How can I use a custom font in Java? Java Load Custom Font File (.ttf)

更新...

为了能够在Applet 上下文中使用Font,您需要将Font 文件包含在您的applet Jar 文件中。

然后您将需要使用类似...

InputStream is = getClass().getResourceAsStream("/path/to/font file");

路径相对于您的类文件的位置。

然后您将使用它来加载Font

【讨论】:

那些链接很难理解。我该如何实现? 我得到一个错误,“找不到符号 - 类 InputStream” @user3414510 Java 教程:Lesson: Basic I/O 我对 I/O 很陌生。我现在有一个指向我的 OTF 文件的文件。不过,即使查看了您的链接,我仍然不明白如何在我的小程序中使用它。

以上是关于将字体导入java(不使用Swing)的主要内容,如果未能解决你的问题,请参考以下文章

在swing组件中显示时所使用的字体可以用啥方法来设置

Java Swing - 如何更改 JPanel 的 TitledBorder 上的字体大小?

如何让Java Swing Application在windows和linux中字体一致?

java swing 通过UIManager怎么能动态改变字体?

Java Swing JLabel、HTML 和自定义字体

是否可以编辑字体的不透明度?