此Java教程适用于JDK 8。本页面中描述的示例和实践不利用后续版本中引入的改进,并且可能使用不再可用的技术。
有关Java SE 9和后续版本中更新的语言功能的摘要,请参阅Java语言变更。
有关所有JDK版本的新功能、增强功能以及已删除或弃用选项的信息,请参阅JDK发行说明。
一旦应用程序处于全屏独占模式,它可以利用主动设置显示模式。显示模式(java.awt.DisplayMode)由尺寸(显示器的宽度和高度,以像素为单位)、位深度(每像素的位数)和刷新率(显示器更新自身的频率)组成。某些操作系统允许您同时使用多种位深度,此时位深度的值使用特殊值BIT_DEPTH_MULTI。另外,某些操作系统可能无法控制刷新率(或者您可能不关心刷新率的设置)。在这种情况下,刷新率的值使用特殊值REFRESH_RATE_UNKNOWN。
要获取当前的显示模式,只需在图形设备上调用getDisplayMode方法。要获取所有可能的显示模式列表,调用getDisplayModes方法。无论是否处于全屏独占模式,都可以随时调用getDisplayMode和getDisplayModes。
在尝试更改显示模式之前,应首先调用isDisplayChangeSupported方法。如果此方法返回false,则操作系统不支持更改显示模式。
只有在全屏独占模式下才能更改显示模式。要更改显示模式,请使用所需的显示模式调用setDisplayMode方法。如果显示模式不可用、不支持显示模式更改或者未在全屏独占模式下运行,将抛出运行时异常。
设置显示模式的主要原因是性能。如果应用程序选择显示的图像与屏幕具有相同的位深度,应用程序可以运行得更快。另外,如果您可以保证显示器具有特定的尺寸,那么绘制到该显示器就变得更简单,因为您不需要根据用户设置的显示器来缩放或放大。
以下是选择和设置显示模式的一些提示:
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); }