2013-04-29 159 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文件夾中:)