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();
Ответы
Ответ 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. Этот (холст) также будет работать в режиме безголоски.