Есть ли обходной путь для невидимой рамки Windows 10 в java? - PullRequest
0 голосов
/ 08 января 2019

Я обнаружил проблему с Windows 10 и Java.

JFrame frame = new JFrame();
frame.setVisible(true);

Когда я создаю новый JFrame и показываю его на экране, он обычно должен иметь экранные координаты x = 0 и y = 0. На самом деле эти координаты есть в окнах 10.

Но, что действительно ужасно, так это то, что кажется, что все окна в Windows 10 имеют какие-то «невидимые» границы вокруг них. Таким образом, в этом случае выглядит, как будто позиция окна равна x = 7 и y = 0:

Invisible window border causes an optically space to neighbor elements

Это всего лишь простой случай, когда он выглядит так ужасно. У моего программного обеспечения есть некоторая логика, которая «привязывает» одно окно к другому, когда вы перетаскиваете его рядом с другим. Я думаю, вы можете себе представить, как уродливо это выглядит, если между двумя окнами есть пространство (2 * 7px =) 14px, хотя его следует показывать пользователю как «связанное» или «привязанное» вместе.

Expecatation of

В Windows 7 это работает отлично!

Так кто-нибудь знает эту проблему и имеет представление, как можно обойти это? Я думаю о том, чтобы узнать текущее имя темы Windows и имя операционной системы. И если это «Aero» и «Windows 10», всегда просто вычисляйте x позиций с -7px. Будет ли это как-то возможно? Или, может быть, прямо выяснить, какова ширина невидимой области?

Спасибо за любую идею по этой теме.

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