Привет, я делаю викторину. Я хотел бы задать вопрос на экране. Если вопрос слишком длинный, я помещаю \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 и просто вставляет слова вместе.
Благодарю!
вы можете использовать drawString для каждой строки
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();
}