Как я могу масштабировать шрифты на экране высокого разрешения?

На экране высокого разрешения (мой пример, 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, чтобы найти правильный размер для ваших шрифтов.

Другие вопросы по тегам