2015-03-28 1 views
0

Я планирую сделать полноэкранное приложение на Java. Я столкнулся с двумя наборами способов сделать приложение полноэкранным.который лучше setExtendedState (JFrame.MAXIMIZED_BOTH) или устройство GraphicsDevice?

1. frame.setExtendedState(JFrame.MAXIMIZED_BOTH) 
2. GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0]; 
    device.setFullScreenWindow(frame); 

Оба они делают то же самое, что и полный кадр. Что я хотел бы знать, какие из них лучше? Если бы я использовал это приложение на разных разрешениях экрана, они будут вести себя одинаково. Примеры проекторов и т. Д.

+2

Не могли бы вы изменить свой заголовок, чтобы отразить свой вопрос, пожалуйста, – beresfordt

ответ

1

Подход 2. является предпочтительным. Самое лучшее, что нужно сделать, это проверить, если полноэкранный режим доступен:

if (device.isFullScreenSupported()) { 
    device.setFullScreenWindow(frame); 
} else { 
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH); 
} 

Максимизация кадра является эквивалентом двойного щелчка по строке заголовка. Он не будет заполнять части экрана, используемые панелью задач рабочего стола или других зарезервированных областей, а его декорации (кнопки заголовка, границы, закрытия/минимизации/максимизации) будут по-прежнему видны, что, вероятно, не так, как вы хотите.

+0

, но если бы я был в 'setUndecorated (true)' из фрейма, тогда он был бы полноэкранным, без панели задач и т. Д. –

+0

Всякий раз, когда я максимизую неупорядоченный фрейм, панель задач показывается. – VGR