2012-12-05 1 views
1

jar 파일의 루트 아래에있는 resources 폴더에있는 "bilboregular.ttf"글꼴을 설정하려고합니다. 내가 넷빈즈 글꼴이 성공적으로 설정에서 실행하는 경우에는 jar 파일에서이없는 경우jar 파일의 java 설정 글꼴

CODE :

main method:{ 

     String s = System.getProperty("user.dir") + "\\src\\resources\\" + "bilboregular.ttf"; 
     File a = new File(s); 
     if (a.exists()) { 
      this.loadFont(s); 
     } else { 
      this.loadFont(this.getClass().getResource("/resources/" + "bilboregular.ttf").getFile()); 
     } 
} 

public void loadFont(String s) { 
    try { 
     font = java.awt.Font.createFont(java.awt.Font.TRUETYPE_FONT, new File(s)); 
     font = font.deriveFont(Font.PLAIN, 20); 
     GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); 
     ge.registerFont(font); 
     setFonts(); 
    } catch (Exception ex) { 
    } 

} 

public boolean setFonts() { 
    jLabel3.setFont(font); 
    jLabel4.setFont(font); 
    return true; 
} 

답변

2

귀하의가 static (당신이 public static void main(String args[])을 의미 가정 때문에 getClass()을 사용할 수 없습니다 주 "메인"). 당신의 JAR의 구조를 게시하시기 바랍니다 및 던져진 예외는 (예를 들어, 당신의 catch 블록에서 로거를 사용합니다.) :이 작동하지 않는 경우

InputStream is = getClass().getResourceAsStream("/resources/bilboregular.ttf"); 
Font f = Font.createFont(Font.TRUETYPE_FONT, is); 

:

이 코드를 사용해보십시오.
Btw. IO 예외가 많은 경우에 실패 할 수 있기 때문에 빈 예외 블록은 좋은 생각이 아닙니다.

+0

당신이 말한 것처럼 글꼴 생성을 위해 입력 스트림을 전달했습니다. 그것은 그런 식으로 일했습니다. 감사합니다 – mangusbrother

+0

좋아요! :-) 그러나 도움이되었거나 문제가 해결 되었다면 해결 된 것으로 표시하십시오. – ollo