Я только что переключился на java 11 (AdaptOpenJDK), чтобы мое приложение Java Swing выглядело нормально на дисплеях с высоким dpi при различных настройках масштабирования системы.
В Windows работает нормально. Независимо от значения масштабирования, настроенного в системе, java автоматически обнаруживает его и использует его для соответствующего масштабирования графического интерфейса.
Однако в Linux графический интерфейс не учитывает масштабирование системы, и, таким образом, он выглядит крошечным на высоких-dpi отображает.
После прочтения некоторых постов я обнаружил, что могу указать java, какое значение масштабирования использовать. Например, если системное масштабирование составляет 200%, я могу добавить следующий аргумент командной строки к команде java, используемой для запуска приложения.
-Dsun.java2d.uiScale=2.0
Графический интерфейс в Linux выглядит нормальнокогда я добавляю вышеуказанный параметр командной строки.
Я также читаю, что могу установить переменную среды GDK_SCALE.
Однако я хотел бы найти лучшее решение. В идеале, где мне не нужно указывать значение масштабирования для использования. Кто-нибудь знает, возможно ли это?
Если вышеупомянутое невозможно, то я думаю, что моим следующим шагом будет создание команды в linux, которая возвращает текущее значение масштабирования системы, и использовать его дляустановите опцию sun.java2d.uiScale
.
Любая помощь приветствуется.
Спасибо.