文档

Java™ 教程
隐藏目录
全屏独占模式
路径:奖励
课程:全屏独占模式API

全屏独占模式

使用Microsoft的DirectX API的程序员可能已经熟悉全屏独占模式。其他程序员可能对这个概念有些陌生。在任何情况下,全屏独占模式是J2SE™ 1.4版本的一个强大功能,它允许程序员暂停窗口系统,以便直接向屏幕绘图。

从很多方面来说,这是对传统GUI程序的一种轻微的范式转变。在传统的Java GUI程序中,AWT负责将操作系统的“绘制事件”通过“事件分发线程”传播,并在适当的时候调用AWT的Component.paint方法。在全屏独占应用程序中,绘制通常是由程序自己主动完成的。此外,传统的GUI应用程序仅限于用户选择的屏幕的位深度和大小。在全屏独占应用程序中,程序可以控制屏幕的位深度和大小(“显示模式”)。最后,许多更高级的技术,如“页面翻转”(下面讨论)和立体缓冲(利用每个眼睛使用的单独一组帧的系统)在某些平台上要求应用程序首先处于全屏独占模式。

硬件加速图像基础

要理解全屏独占模式的API,您需要了解一些硬件加速图像的基本原理。VolatileImage接口封装了一个可能利用硬件加速的表面。这些表面可能会在操作系统的要求下失去硬件加速或内存(因此被称为“易失性”)。有关易失性图像的更多信息,请参见VolatileImage教程(即将推出)。

全屏独占模式通过java.awt.GraphicsDevice对象处理。要获取所有可用的屏幕图形设备(在单个或多监视器系统中),可以调用本地java.awt.GraphicsEnvironment上的getScreenDevices方法;要获取默认(主)屏幕(单个监视器系统上的唯一屏幕),可以调用getDefaultScreenDevice方法。

一旦您拥有了图形设备,就可以调用以下方法之一:

编程技巧

这里有一些关于使用全屏独占模式进行编程的技巧:


上一页:全屏独占模式API
下一页:显示模式