Однако мне нужно выполнить это измерение даже до вызова метода paintComponent
Возможно, вам следует переопределить метод getPreferredSize () компонента.Вот как компоненты Swing знают, как определять размеры и расположение компонентов до того, как они будут видны.
JLabel использует следующее:
FontMetrics fm = getFontMetrics(getFont());
Или, если вам нужен FontRenderContext (), вы можете, вероятно,используйте метод getGraphics()
объекта.Обычно я рекомендую не использовать этот метод, но это потому, что люди тогда пытаются сделать пользовательское рисование с объектом Graphics.Однако в этом случае вы просто хотите, чтобы объект Graphics измерял текст, поэтому все должно быть в порядке.