Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
一旦应用程序处于全屏独占模式,它就可以利用主动设置 display mode (显示模式)。显示模式(java.awt.DisplayMode)由大小(显示器的宽度和高度,以像素为单位),位深度(每像素的位数)和刷新率(显示器自动更新频率)组成)。某些操作系统允许你同时使用多个位深度,在这种情况下,特殊值 BIT_DEPTH_MULTI 用于位深度值。此外,某些操作系统可能无法控制刷新率(或者你可能不关心刷新率设置)。在这种情况下,特殊值 REFRESH_RATE_UNKNOWN 用于刷新率值。
要获得当前显示模式,只需在图形设备上调用 getDisplayMode 方法即可。要获取所有可能的显示模式的列表,请调用 getDisplayModes 方法。无论你是否处于全屏独占模式,都可以随时调用 getDisplayMode 和 getDisplayModes。
在尝试更改显示模式之前,应首先调用 isDisplayChangeSupported 方法。如果此方法返回 false,则操作系统不支持更改显示模式。
只有在全屏独占模式下才能更改显示模式。要更改显示模式,请使用所需的显示模式调用 setDisplayMode 方法。如果显示模式不可用,不支持显示模式更改,或者未以全屏独占模式运行,则将引发运行时异常。
设置显示模式的主要原因是 performance (性能)。如果应用程序显示的图像与屏幕共享相同的位深度,则应用程序可以更快地运行。此外,如果你可以将显示器指定为特定尺寸,则可以使绘图更加简单,因为你无需根据用户设置显示的方式向下或向上缩放。
以下是选择和设置显示模式的一些提示:
try...finally
子句中设置显示模式更加健壮:
GraphicsDevice myDevice; Window myWindow; DisplayMode newDisplayMode; DisplayMode oldDisplayMode = myDevice.getDisplayMode(); try { myDevice.setFullScreenWindow(myWindow); myDevice.setDisplayMode(newDisplayMode); ... } finally { myDevice.setDisplayMode(oldDisplayMode); myDevice.setFullScreenWindow(null); }