Подтвердить что ты не робот

Java - FontMetrics без графики

Как получить FontMetrics без использования графики? Я хочу получить 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();
4b9b3361

Ответ 1

Хм... Очень логично, что вам нужна графика для получения FontMetrics. Высота шрифта, ширина и т.д. Могут различаться на разных дисплеях.

Если у вас есть компонент, вы можете использовать его для получения FontMetrics:

component.getFontMetrics(font);

Ответ 2

Нет, вам необязательно будет получать/использовать графический объект:

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

Если вы теперь звоните c.getGraphics(), он вернет null. Этот (холст) также будет работать в режиме безголоски.