Я обнаружил проблему с Windows 10 и Java.
JFrame frame = new JFrame();
frame.setVisible(true);
Когда я создаю новый JFrame и показываю его на экране, он обычно должен иметь экранные координаты x = 0 и y = 0. На самом деле эти координаты есть в окнах 10.
Но, что действительно ужасно, так это то, что кажется, что все окна в Windows 10 имеют какие-то «невидимые» границы вокруг них. Таким образом, в этом случае выглядит, как будто позиция окна равна x = 7 и y = 0:
Это всего лишь простой случай, когда он выглядит так ужасно. У моего программного обеспечения есть некоторая логика, которая «привязывает» одно окно к другому, когда вы перетаскиваете его рядом с другим. Я думаю, вы можете себе представить, как уродливо это выглядит, если между двумя окнами есть пространство (2 * 7px =) 14px, хотя его следует показывать пользователю как «связанное» или «привязанное» вместе.
В Windows 7 это работает отлично!
Так кто-нибудь знает эту проблему и имеет представление, как можно обойти это? Я думаю о том, чтобы узнать текущее имя темы Windows и имя операционной системы. И если это «Aero» и «Windows 10», всегда просто вычисляйте x позиций с -7px. Будет ли это как-то возможно? Или, может быть, прямо выяснить, какова ширина невидимой области?
Спасибо за любую идею по этой теме.