Найдите, какое окно на экране открыто

Как я могу определить, на каком экране находится JFrame? Мне нужно найти экран и изменить размер кадра, чтобы убедиться, что он не больше соответствующего экрана.


person Nate Glenn    schedule 24.06.2011    source источник


Ответы (2)


Для упомянутой цели вы можете позвонить frame.getGraphicsConfiguration().getBounds(). Если вы действительно хотите запросить другие сведения о самом устройстве отображения, используйте frame.getGraphicsConfiguration().getDevice() (а также другие методы в GraphicsConfiguration), которые могут дать вам кое-что интересное.

person Neil Coffey    schedule 25.06.2011

Вы должны использовать Toolkit

Toolkit tk = Toolkit.getDefaultToolkit();  
int xSize = ((int) tk.getScreenSize().getWidth());  
int ySize = ((int) tk.getScreenSize().getHeight()); 

и после этого просто

frame.setSize(xSize,ySize); 

Если вы хотите максимизировать фрейм, просто вызовите следующий метод

frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
person Sergii Zagriichuk    schedule 24.06.2011
comment
Но что, если есть 5 экранов с разным разрешением? Какой размер экрана мне взять? - person Nate Glenn; 25.06.2011
comment
если вы используете frame.setExtendedState(JFrame.MAXIMIZED_BOTH), разве он не станет таким же большим, как любой экран, на котором он находится? Вам не нужно беспокоиться о том, что он больше любого экрана, на котором он появляется. Если только я не ошибаюсь ... что вполне возможно. - person Aelfhere; 25.06.2011
comment
Если у вас есть 5 экранов, этот код должен выполняться для каждого экрана, лучше всего выполнить этот код во время инициализации кадра. - person Sergii Zagriichuk; 25.06.2011