Центрировать нарисованную строку относительно размера окна?

StackOverflow https://stackoverflow.com/questions/667088

  •  21-08-2019
  •  | 
  •  

Вопрос

Я пытаюсь центрировать строку, нарисованную шрифтом "system", Font.BOLD, 90" в Java.Я пробовал (width / 2 - (font.size / 2 * num_of_chars)), но это не сработало.

g2d.setFont(new Font("system", Font.BOLD, 90));
g2d.drawString("Pause", (int) ((800/2) - ((Font.getSize()/2) * 5)),270);
Это было полезно?

Решение

Использование getFontMetrics().getStringBounds(String, Graphics) чтобы получить границы строки с текущим шрифтом.

Так что это выглядело бы примерно так:

g2d.setFont(new Font("system", Font.BOLD, 90));
String msg = "Pause";
Rectangle2D bounds = g2d.getFontMetrics().getStringBounds(msg, g2d);
g2d.drawString(msg, (int) ((getWidth() + bounds.getWidth()) / 2), 270);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top