2009-07-20 5 views
1

JLabel을 화면 밖으로 렌더링하는 그래픽이 강렬한 응용 프로그램을 작성 중입니다.Mac에서의 글꼴 렌더링

다음 줄을 호출하면 줄임표가 mac에 나타나지만 Windows 상자에는 나타나지 않습니다.

g2.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, 
    RenderingHints.VALUE_FRACTIONALMETRICS_ON); 

는 지금, 나는 이미 글꼴의 일부 서브 픽셀 렌더링을 수행 맥에 의한 것 같은데요,하지만 난 그냥 확인하고 싶습니다.

또한 Windows에서 FRACTIONALMETRICS를 사용하도록 설정해야하므로 (그렇지 않으면 앱이 끔찍한 것처럼 보입니다.) 아무도 Mac 용이 아닌 수표를 추가하지 않아도되는 작업을 제안 할 수 있습니까?

감사합니다.

답변

3

분수 메트릭의 RenderingHints는 글꼴의 크기를 조정하거나 커닝 할 때 float에서 int로 반올림됩니다. 글리프 자체는이 설정의 영향을받지 않습니다. Java 2D FAQ에서이 모든 내용을 읽을 수 있습니다.

Mac OS X의 Java가 시스템 수준에서 텍스트 앤티 앨리어싱을 사용하고 있고 Windows가 아니지만 Mac 전용 검사가 필요하지 않은 것은 맞습니다. 당신이해야 할 일은 TextAntiAlias ​​RenderingHint를 대신 설정하는 것입니다.

gfx.setRenderingHint( 
     RenderingHints.KEY_TEXT_ANTIALIASING, 
     RenderingHints.VALUE_TEXT_ANTIALIAS_ON 
    ); 

자바 6 5. 클리어 종종 Windows XP에서 전환 할 필요가 자바에 있던 안티 앨리어싱에 비해 LCD 화면에 훨씬 더 클리어 타입 폰트 렌더링을 지원; 그것은 제어판의 디스플레이 설정 어딘가에 있습니다. 그럼 당신은 (당신이 어떤 스윙 구성 요소를 표시하기 전에 또는 System.setProperty를()에 삽입)을 활성화 할 수있는 올바른 명령 줄 인수와 자바 프로그램을 실행해야합니다

java -Dawt.useSystemAAFontSettings=lcd [...your gubbins here...] 
+0

감사의 클리어 트릭에 좋은 알고 있지만 슬프게도 내가 타겟팅하는 버전을 넘어서야합니다. 하나의 줄임표를 일으키는 원인은 무엇입니까? 또는 앤티 앨리어싱이 크기를 높이는가? –

+0

렌더링되는 문자열이 같은 글꼴로되어 있습니까? Mac Java 응용 프로그램이 기본적으로 Lucida Grande를 사용하는지 여부는 기억이 안납니다. 때로는 대문자 W와 같은 넓은 글자가 JLabel에서 줄임표를 호출합니다. 레이아웃 관리자가 허용하는 경우 조금 더 넓게 설정하십시오. – banjollity