1

안녕하세요 저는 퀴즈 응용 프로그램을 만들고 있습니다. 질문을 화면에 표시하고 싶습니다. 질문이 너무 길면 줄에 \ n을 써서 줄 바꿈을해야합니다. 그러나 g.drawstring은이 \ n을 인식하지 못합니다.어떻게하면 g.drawstring이 n 처리 할 수 ​​있습니까?

이 내 코드입니다 :

/* Draw the question*/ 
StringBuilder sb = new StringBuilder($question.getQuestion()); 

int x = 0; 
while ((x = sb.indexOf(" ", x + 20)) != -1){ 
    sb.replace(x, x + 1, "\n"); 
} 

System.out.println(sb.toString()); 

g.drawString(sb.toString(), 125, 120); 

내 콘솔에서 얻을 출력은 : 파리에서
에펠 탑을 만든 엔지니어
?

코드가 작동하므로 어떻게 g.drawstring이이 문자열을 처리하도록 할 수 있습니까? 그것은 어떤 기술자가 파리에서 에펠 탑을 만들었는지와 같은 것을 그리기 때문입니다. 그래서 그것은 \ n을 읽지 않고 그 단어들을 붙여 넣기 만합니다.

감사합니다.

+0

내가 http://stackoverflow.com/questions/4413132/problems-with (이 [\ n 졸라에] 당신이 찾고있는 것을 생각하는 모든 줄을하면서 drawString을 사용할 수 있습니다 -newline-in-graphics2d-drawstring) – Sarwar

답변

1

당신은

Graphics2D g2d ; 

String s = "hello\nworld"; 
int x = 0, y = 0; 
String[] lines = s.split("\\n"); 
for(int i=0,l = lines.length;i<l;i++) { 
    String curLine = lines[i].trim(); 
    FontMetrics fm = g2d.getFontMetrics(); 
    Rectangle2D r = fm.getStringBounds(curLine, g2d); 
    g2d.drawString(curLine, x, y); 
    y += r.getHeight() + fm.getAscent();  
} 
관련 문제