【问题标题】:add .ttf file to java project将 .ttf 文件添加到 java 项目
【发布时间】: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 文件:-

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

我是 Java 新手,并通过在线访问各种链接尝试了所有这些。请帮助我我哪里出错了。

【问题讨论】:

  • 如果它在src 文件夹中,它应该会自动进入bin 文件夹,不是吗? Font 需要通过URL 而不是File 访问。查看embedded-resource info. page 了解如何获取 URL。
  • 它是否与您的检查类存在于同一文件夹中?第三次尝试应该可以工作;至少 InputStream 对象不应为空。
  • 由于字体是应用程序的一部分(可以打包在 jar 中),所以不要使用 File 而是使用资源:getClass().getResourceAsStream("/akshar.TTF")。注意区分大小写

标签: java fonts awt truetype


【解决方案1】:

您可以将创建的字体注册到图形环境中,如下:

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

请参阅Java tutorial

【讨论】:

  • 好点。另见this example & this example
  • @Noob UnChained :我收到此错误消息java.io.IOException: Can't read akshar.ttf at java.awt.Font.createFont(Unknown Source)
  • 检查.ttf文件的路径和文件名,确保正确!
  • @NoobUnChained 放置 ttf 文件的正确位置是什么?
【解决方案2】:

将你的 ttf 放入assets 文件夹:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-13
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 2013-12-17
    • 2018-09-09
    相关资源
    最近更新 更多