#java #fonts #monospace
#java #шрифты #моноширинный
Вопрос:
Я создаю игру, и я хотел бы использовать Font.MONOSPACED
шрифт Java, потому что он прост в использовании (хотя и выглядит отвратительно). Проблема в том, что я понятия не имею о соотношении ширины и высоты шрифтов, что очень важно. Я не мог найти ответ в Интернете после некоторого поиска.
Если кто-то знает это или как это выяснить, я был бы очень благодарен.
Комментарии:
1. Я не мог найти ответ в Интернете после некоторого поиска. —> Производный шрифт, размер, стиль
Ответ №1:
java.awt.FontMetrics
здесь он станет вашим другом.
Вы получаете доступ к нему через Graphics2d
объект:
Graphics2D gfx = ...;
gfx.setFont(...); // select your preferred font, monospaced or otherwise
FontMetrics metrics = gfx.getFontMetrics();
сделав это, вы можете получить: (все из приведенной выше ссылки на документы)
Ширина любого отдельного символа:
charWidth(char ch)
Возвращает ширину опережения указанного символа в этом шрифте.
Ширина строки:
stringWidth(String str)
Возвращает общую ширину продвижения для отображения указанной строки в этом шрифте.
Высота строки
getHeight()
Возвращает стандартную высоту строки текста в этом шрифте.
Я предполагаю, что вы можете выяснить, как получить соотношение ширины и высоты из приведенного выше, и вы можете получить много другой информации из разных FontMetrics
методов — проверьте это.
Комментарии:
1. Спасибо за вашу помощь. Попробовал сегодня и сработал именно так, как я хотел.