【发布时间】:2013-04-23 06:36:32
【问题描述】:
我已经下载了 akshar.ttf 文件并想将它添加到我的 java 项目中。我通过在线搜索尝试了以下方法,但到目前为止没有任何效果。
尝试1:
Font ttfBase = null;
Font ttfReal = null;
try {
InputStream myStream = new BufferedInputStream(new FileInputStream("akshar.TTF"));
ttfBase = Font.createFont(Font.TRUETYPE_FONT, myStream);
ttfReal = ttfBase.deriveFont(Font.PLAIN, 24);
} catch (Exception ex) {
ex.printStackTrace();
System.err.println("akshar font not loaded.");
}
尝试2:
Font font = new Font("akshar",Font.PLAIN,15);
我在以下位置有 akshar.ttf 文件:-
- java/jre/lib/fonts
- 我项目的bin文件夹
- 我项目的src文件夹
我是 Java 新手,并通过在线访问各种链接尝试了所有这些。请帮助我我哪里出错了。
【问题讨论】:
-
如果它在
src文件夹中,它应该会自动进入bin文件夹,不是吗?Font需要通过URL而不是File访问。查看embedded-resource info. page 了解如何获取 URL。 -
它是否与您的检查类存在于同一文件夹中?第三次尝试应该可以工作;至少
InputStream对象不应为空。 -
由于字体是应用程序的一部分(可以打包在 jar 中),所以不要使用 File 而是使用资源:
getClass().getResourceAsStream("/akshar.TTF")。注意区分大小写!