将.ttf文件添加到Java项目中

3
我已经下载了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文件:

  1. java/jre/lib/fonts
  2. 我的项目的bin文件夹
  3. 我的项目的src文件夹

我是Java的新手,通过在线链接尝试了所有这些方法。请帮助我找出问题所在。


如果它在“src”文件夹中,它应该自动进入“bin”文件夹,不是吗?Font需要通过URL而不是File进行访问。请查阅嵌入式资源信息页面获取URL的获取方法。 - Andrew Thompson
它是否存在于与您的检查类相同的文件夹中?第三次尝试应该会起作用; 至少InputStream对象不应为null。 - Abdullah Shoaib
由于字体是应用程序的一部分(可以打包在jar文件中),请不要使用File,而是使用资源:getClass().getResourceAsStream("/akshar.TTF")。请注意这个区分大小写 - Joop Eggen
2个回答

7
您可以按照以下方式将创建的字体注册到图形环境中:

try {
   GraphicsEnvironment ge = 
     GraphicsEnvironment.getLocalGraphicsEnvironment();
 ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File("akshar.TTF"));
} catch (IOException|FontFormatException e) {
 //Handle exception
}

请参考Java教程进行相关的IT技术学习。


好的,另请参见此示例此示例 - Andrew Thompson
@Noob UnChained: 我收到了这个错误信息 java.io.IOException: 无法读取akshar.ttf 在 java.awt.Font.createFont(Unknown Source) - newbee
检查.ttf文件的路径和文件名,确保它是正确的! - AllTooSir
@NoobUnChained 请问在哪个位置放置ttf文件是正确的? - newbee

-1
将您的ttf文件放入assets文件夹中 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接