2011-04-14 3 views
6

내 응용 프로그램에서 사용자 정의 글꼴을 사용하려고합니다. 그 때문에 나는 Font.createFont() 방법을 사용하고 있습니다. 내 코드는 아래와 같습니다. 내 메인 클래스 명령을Jar에서 사용자 정의 글꼴에 액세스

자바 myAppl.class 글꼴 파일이 나의 클래스 파일의 같은 디렉토리에

를 사용하여 실행할 때 잘 작동합니다. 그러나 JAR에서 모든 파일과 글꼴 파일을 번들로 묶은 다음 JAR에서 응용 프로그램을 실행하면 사용자 정의 글꼴이로드되지 않습니다. 왜?

InputStream is = this.getClass().getResourceAsStream("myfont.TTF"); 
uniFont=Font.createFont(Font.TRUETYPE_FONT,is); 
Font f = uniFont.deriveFont(24f); 

어떻게해야합니까?

+2

글꼴 경로가 정확하며 jar 파일의 resources/fonts/myfont.TTF와 다릅니다. 또한 대소 문자가 올바른지 확인하십시오. – lobster1234

답변

4
  1. 는 확실 경우 확인 ("com.mypackagename.myfont.TTF")는 JRE/lib 디렉토리/글꼴 폴더

    에 글꼴을 복사하거나 패키지 자격을 갖춘 이름을 사용 글꼴 파일 이름 &의 확장명은 파일 시스템의 코드와 정확히 동일합니다. Windows는 대소 문자를 구분하지 않지만 Java는 대소 문자를 구분하지 않습니다.

  2. InputStream이 인 경우 getResourceAsStream()으로 반품되었는지 확인하십시오. null이면 자원을 찾지 못했음을 나타냅니다.
  3. Jar의 루트에 글꼴을 넣고 접두사로 "/"를 추가하십시오.
1

앤드류 응답, 나는 위에 정확하게 코드를 테스트하고 작동했습니다

InputStream is = this.getClass().getResourceAsStream("/myfont.TTF"); 
uniFont=Font.createFont(Font.TRUETYPE_FONT,is); 

그냥 "/"파일 이름 앞에 누락되었습니다. 참고 : Netbeans의 jar 패키지

관련 문제