2010-05-16 3 views
26

FontMetrics를 사용하지 않고 얻는 방법 Graphics? 나는 지금은이 방법을 수행 생성자에서 폰트 메트릭스를 얻으려면 :Java - 그래픽이없는 FontMetrics

BufferedImage bi = new BufferedImage(5, 5, BufferedImage.TYPE_INT_RGB); 
FontMetrics fm = bi.getGraphics().getFontMetrics(font); 
int width = fm.stringWidth(pattern); 
int height = fm.getHeight(); 
+0

왜 그래픽없이 이것을하고 싶습니까? – tangens

+0

나 자신의 컨트롤을 만들고, 생성자에서 preffred 크기를 설정하려고합니다. – piotrek

+6

이것은 헤드리스 모드에서 글꼴 메트릭을 가져 오는 데 유용합니다. 즉, 글꼴을 비트 맵으로 처리하는 명령 줄 도구입니다. –

답변

21

는 흠 ... 그것은 당신이 폰트 메트릭스를 얻기 위해 그래픽을 필요로 매우 논리적이다. 글꼴 높이, 너비 등은 다양한 디스플레이에서 다를 수 있습니다. 당신은 몇 가지 구성 요소가있는 경우

, 당신은 점점 폰트 메트릭스를 위해 그것을 사용할 수 없습니다 :

component.getFontMetrics(font); 
+0

Thx :) 작동 중 – piotrek

+0

@ amorfis font-size를 지정한 상태에서 글꼴 너비와 높이가 디스플레이에 종속되어 있습니까? –

17

없음 당신이 반드시 얻을 필요가 없습니다/그래픽 객체를 사용

Font font = new Font("Helvetica",Font.PLAIN,12); 
Canvas c = new Canvas(); 
FontMetrics fm = c.getFontMetrics(font); 

지금 호출하는 경우 c.getGraphics() null을 반환합니다. 이 (캔버스)도 headless mode에서 작동합니다.

+2

이것은 허용 된 대답이어야합니다. – SimonT