Как частично переместить Java JFrame с моего рабочего стола Linux? - PullRequest
6 голосов
/ 24 марта 2010

Я пишу 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);

1 Ответ

3 голосов
/ 24 марта 2010

Я не думаю, что это возможно в Java, но я бы с радостью оказался неправ. Я рассматриваю это как функцию, предназначенную для уменьшения риска потери окон. Аналогичная вещь происходит в Mac OS X и Ubuntu. Вот примитив пример для возни. Может быть, кто-то может попробовать в Windows.

...