Можно ли получить правильный размер строки без использования paintComponent (Graphics g)? - PullRequest
0 голосов
/ 14 мая 2018

На самом деле у меня есть эти методы, чтобы получить размер строки по ширине / высоте, оба требуют команду внутри компонента рисования. Но Я хочу получить эти значения внутри конструктора класса . Это возможно?

public int getStringWidth(Graphics g){
    g2d = (Graphics2D) g;
    metrics = g2d.getFontMetrics(this.font);
    return metrics.stringWidth(this.string);
}

public int getStringHeight(Graphics g){
    g2d = (Graphics2D) g;
    metrics = g2d.getFontMetrics(this.font);
    int height = (int)font.createGlyphVector(metrics.getFontRenderContext(), this.string).getVisualBounds().getHeight();    
    return height;
}

font.createGlyphVector(metrics.getFontRenderContext(), this.string).getVisualBounds().getHeight() это лучшая команда, которую я получил, чтобы точно рассчитать размер высоты строки, и ей тоже нужно Graphics g.

1 Ответ

0 голосов
/ 16 мая 2018

Вы можете попытаться создать BufferedImage с правильным размером и использовать createGraphics () для него, чтобы получить фактический графический объект, который можно рисовать.

BufferedImage img = new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB);
Graphics g = img.createGraphics();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...