2017-12-20 25 views
0

swingでJTableに作成したカスタムフォントを読み込もうとしています。 これは私が行う方法です。JavaフォントのcreateFontが機能しない(IOException)

private void carregar_font(){ 
    try { 
     URL fontName = getClass().getResource("fonts/open.ttf"); 
     GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); 
     ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File(fontName.toString()))); 
      } catch (IOException e) { 
       e.printStackTrace(); 
       } catch(FontFormatException e) { 
     e.printStackTrace(); 
     } 
    } 

これは私にはIOExceptionを与えています。なにか提案を?ありがとう

+1

適切な[mcve]と正確なスタックトレースを投稿してください。 – Frakcool

+0

あなたはmavenを使用していますか? –

+0

@Mdkhirulashik、noope –

答えて

0

getClass().getResourceは、ファイル名ではなくURLを返します。 new Fileに直接渡すと、無効で存在しないファイルになります。

リソースURLは、ファイルを指しているとは限りません。

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); 
try (InputStream fontStream = getClass().getResourceAsStream("fonts/open.ttf")) { 
    ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, fontStream)); 
} 
関連する問題