Как я могу масштабировать шрифты на экране высокого разрешения?
На экране высокого разрешения (мой пример, Windows 8.1) мое приложение Java. В частности, меню очень маленькое, и почти невозможно выбрать пункт меню.
На обычных экранах (72 DPI) все ок.
Шрифт с фиксированным размером (в моем случае это будет <80px), плохой выбор. 72 экрана DPI показывают его очень большой.
Как я могу сделать шрифты масштабируемыми, чтобы программа соответствовала их размеру, или пользователь получил возможность установки?
1 ответ
Вы можете изменить размер шрифта по умолчанию в одном месте, открыв свой PLAF: Java Swing на экране с высоким разрешением
но из-за этого приложение будет выглядеть плохо, потому что межкомпонентные пространства будут в пикселях и, следовательно, не будут масштабироваться с размером шрифта. См. http://www.javalobby.org/java/forums/t101878.html для более подробного обсуждения.
Я рекомендую использовать библиотеку макетов с поддержкой DPI, например MigLayout, которая поддерживает указание размеров в пикселях или в формате DPI или в мм или см. Затем вы можете связать как масштабирование шрифтов, так и интервал с учетом DPI, используя FontMetrics, чтобы найти правильный размер для ваших шрифтов.