Я пишу 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);
Я не думаю, что это возможно в Java, но я буду рад, если мне докажут, что я ошибаюсь. Я рассматриваю это как функцию, призванную снизить риск потери окон. Подобное происходит в Mac OS X и Ubuntu. Вот примитивный пример для подражания. Может быть, кто-нибудь попробует сделать это на Windows.