Я бы хотел, чтобы мое приложение имело полноэкранный режим. Как это сделать проще всего, нужна ли для этого сторонняя библиотека или в JDK есть что-то, что уже предлагает это?
Как запрограммировать полноэкранный режим на Java?
Ответы:
Попробуйте API полноэкранного монопольного режима. Он был представлен в JDK в версии 1.4. Некоторые из особенностей включают в себя:
- Полноэкранный эксклюзивный режим: позволяет приостановить оконную систему, чтобы можно было рисовать прямо на экране.
- Режим отображения – состоит из размера (ширины и высоты монитора в пикселях), разрядности (количество бит на пиксель) и частоты обновления (частоты обновления монитора).
- Пассивное и активное рендеринг: рисование в основном цикле событий с использованием метода рисования является пассивным, тогда как рендеринг в вашем собственном потоке активен.
- Двойная буферизация и перелистывание страниц. Более плавное рисование означает лучшую воспринимаемую производительность и гораздо лучший пользовательский интерфейс.
- BufferStrategy и BufferCapabilities — классы, которые позволяют рисовать на поверхностях и компонентах, не зная количества используемых буферов или метода их отображения, и помогают определить возможности вашего графического устройства.
В связанном руководстве есть несколько примеров полноэкранного эксклюзивного режима.
Метод JFrame setUndecorated(true)
Я сделал это с помощью JOGL, имея полноэкранный пользовательский интерфейс OpenGL для игры. Это довольно легко. Я считаю, что эта возможность была добавлена в Java также с версией 5, но это было так давно, что я забыл, как это сделать (отредактируйте: см. ответ выше, как).
Используйте этот код:
JFrame frame = new JFrame();
// set properties
frame.setSize(Toolkit.getDefaultToolkit().getScreenSize());
frame.setUndecorated(true);
frame.setVisible(true);
Убедитесь, что setUndecorated()
стоит перед setVisible()
, иначе это не сработает.
Это действительно зависит от того, что вы используете для отображения своего интерфейса, то есть AWT/Spring или OpenGL и т. д.
Java имеет API полноэкранного эксклюзивного режима — см. этот учебник от Sun. а>.