2013-04-29 191 views
1

我已经下载了akshar.ttf文件,并且希望将它添加到我的java项目中。我通过在线搜索尝试了以下方法,但目前为止没有任何工作。将.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中/字体
  2. 我项目的bin文件夹
  3. 我的项目的src文件夹

我是新来的java,并尝试所有这些通过以下各种链接在线。请帮我,我哪里错了。

+0

如果它在'src'文件夹中,它应该自动进入'bin'文件夹,不是吗? 'Font'需要通过'URL'而不是'File'访问。检查[嵌入式资源信息。页面](http://stackoverflow.com/tags/embedded-resource/info)了解如何获取URL。 – 2013-04-29 14:34:42

+0

它与您的检查课程在同一个文件夹中?那么第三次尝试应该可行;至少InputStream对象不应该为null。 – 2013-04-29 14:35:20

+0

由于字体是应用程序的一部分(可以打包成jar),不要使用File而是使用一个资源:'getClass()。getResourceAsStream(“/ akshar.TTF”)'。请注意*区分大小写*! – 2013-04-29 14:43:20

回答

5

你可以注册与图形环境中创建的字体,如下:

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

请参考Java tutorial

+0

好点。另请参见[此示例](http://stackoverflow.com/questions/6965038/getting-fonts-sizes-bold-etc/6965149#6965149)&[this example](http://stackoverflow.com/a/8365030/418556)。 – 2013-04-29 14:38:00

+0

@Noob UnChained:收到此错误消息'java.io.IOException:无法读取akshar.ttf \t at java.awt.Font.createFont(未知来源)' – newbee 2013-04-29 14:44:01

+0

检查路径和文件名。 ttf文件,确保它是正确的! – NINCOMPOOP 2013-04-29 14:45:31

-1

把你的ttf放到assests文件夹中:)