Как запрограммировать полноэкранный режим на Java? - PullRequest
12 голосов
/ 26 сентября 2008

Я бы хотел, чтобы в моем приложении был полноэкранный режим. Какой самый простой способ сделать это, мне нужна сторонняя библиотека для этого или есть что-то в JDK, которое уже предлагает это?

Ответы [ 5 ]

23 голосов
/ 26 сентября 2008

Попробуйте API полноэкранного эксклюзивного режима . Он был представлен в JDK в версии 1.4. Некоторые функции включают в себя:

  • Полноэкранный эксклюзивный режим - позволяет приостановить систему управления окнами, чтобы рисование можно было выполнять непосредственно на экране.
  • Режим отображения - состоит из размера (ширина и высота монитора в пикселях), глубины цвета (количество бит на пиксель) и частоты обновления (как часто обновляется сам монитор).
  • Пассивный или активный рендеринг - рисование в основном цикле событий с использованием метода рисования является пассивным, тогда как рендеринг в вашем собственном потоке активен.
  • Двойная буферизация и перелистывание страниц - Более плавное рисование означает лучшую воспринимаемую производительность и намного лучший пользовательский опыт.
  • BufferStrategy и BufferCapabilities - классы, которые позволяют рисовать на поверхностях и компонентах без необходимости знать количество используемых буферов или методику, используемую для их отображения, и помогают вам определить возможности вашего графического устройства .

В связанном учебном пособии есть несколько примеров полноэкранного эксклюзивного режима.

3 голосов
/ 26 сентября 2008

JFrame setUndecorated(true) метод

2 голосов
/ 08 апреля 2012

Используйте этот код:

JFrame frame = new JFrame();
// set properties
frame.setSize(Toolkit.getDefaultToolkit().getScreenSize());
frame.setUndecorated(true);
frame.setVisible(true);

Убедитесь, что setUndecorated() предшествует setVisible() или не будет работать.

2 голосов
/ 26 сентября 2008

Я сделал это, используя JOGL, когда у меня был полноэкранный пользовательский интерфейс OpenGL для игры. Это довольно просто. Я полагаю, что эта возможность была добавлена ​​в Java и с версией 5, но это было так давно, что я забыл, как это сделать (правка: см. Ответ выше).

1 голос
/ 26 сентября 2008

Это действительно зависит от того, что вы используете для отображения вашего интерфейса, то есть AWT / Spring или OpenGL и т. Д.

Java имеет полноэкранный API эксклюзивного режима - см. Это руководство от Sun .

...