Точечный графический интерфейс Java в Windows 7 после перехода на AdoptOpenJDK 11 - PullRequest
0 голосов
/ 17 октября 2019

Я перевожу Java-приложение из Java 8 (Oracle) в Java 11 (AdaptOpenJDK). Версия, которая использовала Java 8, имела проблемы с макетом в Windows 10 с дисплеями с высоким разрешением. После того, как я собрал java 11, проблема исчезла, и GUI выглядит хорошо в Windows 10. Однако я обнаружил, что новая сборка с java 11 не выглядит хорошо в Windows 7, изображения и текст GUI выглядят точечно.

Резюме:

  • Графический интерфейс с java 8 подходит для Win 7, но не выглядит нормально в Win 10
  • Графический интерфейс с java 11 подходит для Win 10, но не выглядит нормальноWin 7

Я использую монитор 4k с разрешением 3840x2160 с масштабированием 125%.

Я обнаружил, что если я использую java 8 JRE (из AdoptOpenJDK) для запуска приложения,тогда проблема в Windows 7 исчезнет. Кажется, проблема вызвана тем, что java 11 выполняет масштабирование на 125%, поскольку я обнаружил, что графический интерфейс пользователя примерно на 25% больше.

Я хотел бы найти решение в Windows 7 при использовании java 11. Интересно,есть любой аргумент javaw, который я могу использовать, или любой системный параметр, который я могу изменить.

Любая помощь приветствуется.

Спасибо.

Обновление

Скриншоты всех комбинаций в java-версии и окнах прилагаются.

  • java8 win 7.jpg : выглядит нормально (без масштабирования),маленький недостаток только текста и изображений независимо от конфигурации масштабирования в системе
  • java8 win 10.png : масштабирование не применяется к значкам - загромождено JTree
  • java11 win 10.png : выглядит нормально - правильное масштабирование
  • java11 win 7.jpg : применено масштабированиено это показывает проблемы - значки и текст выглядят пиксельными

Решение

Это не актуальноЭто всего лишь решение, но я хочу поделиться тем, что, по моему мнению, происходит после некоторых исследований.

Эта статья Microsoft описывает режимы осведомленности о DPI и какие из них есть в каждой версии Windows. Поведение для всех версий Windows, предшествующих 8.1, всегда применяет растягивание растрового изображения, что приводит к размытым пользовательским интерфейсам. Растяжение не происходит в Java 8, потому что оно не поддерживает dpi, но оно имеет более серьезную проблему с высоким процентом масштабирования (загромождение, огромный текст и маленькие изображения / значки). Растяжение происходит в Java 11, так как он поддерживает dpi, однако имеет проблему с размытостью из-за поведения растяжения, реализованного в Windows 7.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...