2012-12-15 1 views
0

자바에서 내 프로젝트의 새 글꼴을 추가했습니다. 그러나 렌더링시 텍스트 크기는 항상 1입니다. 텍스트는 기본적으로 몇 줄의 작은 선으로 표시됩니다. 나는 여러 글꼴로 이것을 시도하고 그들은 그것을 모두했다. 이것은 내 코드입니다.새 자바 글꼴의 크기는 항상 1입니다.

public static void intializeFonts(){  
    try{ 
     File font = new File("C:/The Woods/Fonts/script.ttf"); 
     Font scriptFontU = Font.createFont(Font.TRUETYPE_FONT, font); 
     Font scriptFont = scriptFontU.deriveFont(20); 
     script = new TrueTypeFont(scriptFont, false); 
    } catch(Exception e){ 
     System.out.println("Error Loading Font"); 
    }    
} 

이것이 도움이 될 경우 렌더링하는 데 사용됩니다.

g.setFont(Fonts.script); 
    g.drawString("Weight: "+ItemContainer.getWeight()+"lbs", 30, 600); 

도움이 될 것입니다. 고맙습니다.

+1

해결되었습니다. 필자는 외각을 사용하여 글꼴이 시스템에서 사용하는 이름을 찾은 다음 deriveFont()가 아닌 새 font()를 수행하고 작동했습니다. – user1906977

+0

필자가 내 대답에서 언급 한 것처럼, deriveFont가 작동하지 않는 이유는 잘못된 오버로드를 호출했기 때문입니다. 등록 된 시스템 글꼴을 항상 다루는 경우 해결 방법이 정확하고 더 나은 솔루션이지만 글꼴이 리소스로 포함 된 경우 원래 방법을 사용하고 싶을 것입니다. – addaon

+0

자신의 질문에 "대답"하고 "수락"해도됩니다. 솔루션을 문서화하는 좋은 방법입니다. – Marvo

답변

0

scriptFontU.deriveFont(20)으로 전화 할 경우 Font.deriveFont(int)으로 전화하십시오. 이 함수에서 첫 번째 인수는 스타일을 나타내는 정수입니다. 대신, Font.deriveFont(float)으로 전화를 걸면 원하는 크기가되고 스타일은 변경되지 않습니다. scriptFontU.deriveFont(20.0) 또는 이와 동등한 번호로 전화하여이 작업을 수행 할 수 있습니다. 또는 Font.deriveFont(int, float)scriptFontU.deriveFont(Font.PLAIN, 20.0)으로 지정하여 모호하지 않게하십시오.