Como você desenha uma string centralizada verticalmente em Java?

Eu sei que é um conceito simples, mas estou lutando com as métricas de fonte. Centralizar horizontalmente não é muito difícil, mas na vertical parece um pouco difícil.

Eu tentei usar os métodos getMeading, getLeading, getXXXX da FontMetrics em várias combinações, mas não importa o que eu tentei, o texto está sempre desligado por alguns pixels. Existe uma maneira de medir a altura exata do texto para que ele esteja exatamente centralizado.