Я знаю, что это очень старый вопрос, но кто-то может найти его:
Высота шрифта в Java (и во многих других местах) указывается в «типографских точках», которые определяются примерно как 1/72 дюйма.
Чтобы вычислить точки, необходимые для определенной высоты пикселя, вы должны использовать следующее:
double fontSize= pixelSize * Toolkit.getDefaultToolkit().getScreenResolution() / 72.0;
Я еще не тестировал это, но похоже, что он работает для мониторов, которые я использовал. Я сообщу, если найду случай, когда это не сработает.
Для стандартных системных шрифтов, с которыми я это использовал, это устанавливает высоту заглавной буквы (то есть восхождение) равным предоставленному размеру пикселя. Если вам нужно установить восхождение + спуск на размер в пикселях, вы можете исправить значение, используя FontMetrics :
FontMetrics m= g.getFontMetrics(font); // g is your current Graphics object
double totalSize= fontSize * (m.getAscent() + m.getDescent()) / m.getAscent();
Конечно, фактическая высота в пикселях некоторых конкретных букв будет зависеть от буквы и используемого шрифта, поэтому, если вы хотите убедиться, что ваша буква "H" имеет какое-то точное количество пикселей в высоту, вы все равно можете захотеть используйте методы проб и ошибок, упомянутые в других ответах. Просто имейте в виду, что если вы используете эти методы, чтобы получить размер для каждого конкретного текста, который вы хотите отобразить (как предложено @Bob), у вас может получиться случайный беспорядок font-size на вашем экране, где текст типа «туз» "будет иметь гораздо большие буквы, чем" Tag ". Чтобы избежать этого, я бы выбрал одну конкретную букву или последовательность букв («T» или «Tg» или что-то в этом роде) и установил ее один раз на высоту своего пикселя, а затем использовал бы размер шрифта, который вы получаете от этого везде.