将字体导入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)的主要内容,如果未能解决你的问题,请参考以下文章
Java Swing - 如何更改 JPanel 的 TitledBorder 上的字体大小?
如何让Java Swing Application在windows和linux中字体一致?