Я пишу Java-приложение с подвижными фреймами, и я столкнулся с причудами в Linux. Я использую GNOME 2.16.0 под CentOS.
Когда я использую JFrame.setBounds
, чтобы установить границы для любого местоположения, которое находится наполовину от экрана, оно фактически устанавливает местоположение рамки как можно ближе к указанным границам, оставаясь при этом полностью на экране. *
Как мне сказать Java, чтобы GNOME фактически поместил кадр, где я укажу, даже если это половина экрана?
Вот пример кода, который демонстрирует проблему, предполагая, что -50, 50 за кадром. Рамка все еще может быть перемещена за пределы экрана с помощью строки заголовка, но любые вызовы setLocation
или setBounds
не работают.
Это прекрасно работает в Windows.
JFrame frame = new JFrame();
frame.setPreferredSize(new Dimension(200, 200));
frame.pack();
frame.setVisible(true);
frame.setLocation(-50, 50);