2014-10-11 5 views
0

fontmetrics를 사용하여 jpanel에 그려지는 String의 길이와 높이를 결정했으나 잘못된 측정 값을 보냈습니다.Java : g.drawString() 너비와 높이 (픽셀)?

내가 사용되는 문자열했다 : 예를 들어

"안녕하세요이 환상적이다": A는 기본 글꼴의 문자열을 끌었다; 글꼴 메트릭스에 따르면 크기는 다음과 같습니다. 높이 : 24; 너비 : 224.

실제로 측정했을 때 길이는 148 픽셀, 높이는 10 픽셀이었습니다. 픽셀 스트링의 실제 높이와 폭을 제공 할 수있는 자바 수식 또는 방법이 있다면

FontMetrics fm = g.getFontMetrics(this.f); 
int Ilength = fm.stringWidth("Hello World this is fantastic"); 
int Iheight = fm.getHeight(); 
System.out.println("height: " + Iheight + "; width: " + Ilength); 

(기본적으로 시행 착오) 궁금. 감사!

+0

체크 아웃이 게시물 http://stackoverflow.com/questions/23729944/java-how-to-visually-center-a-specific-string-not-just-a-font-in-a-rectangle/23730189 # 23730189 –

+0

문자열을 그리기 전에 그래픽의 글꼴을 설정 했습니까? 'g.setFont (f)'. –

+0

번호. 지금은 글꼴을 설정하지 않습니다. 메신저 그냥 기본값을 사용합니다. – nathannn

답변

0

또한이 문제가 발생했습니다. FontMetrics 개체의 getStringBounds(String,Graphics) 메서드를 사용해보십시오.

public Rectangle2D bounds = fm.getStringBounds("Hello World this is fantastic", g); 
int Ilength = (int)bounds.getWidth(); 
int Iheight = (int)bounds.getHeight();