Java LWJGL can';如果显示为';那是不同的频率

Java LWJGL can';如果显示为';那是不同的频率,java,exception,fullscreen,lwjgl,frequency,Java,Exception,Fullscreen,Lwjgl,Frequency,使用Windows 7 64位计算机和支持不同刷新率的显示器:24hz、30hz、59hz和60hz 我有一个小的LWJGL应用程序,它将全屏显示模式设置为“1280 x 720@60hz” 如果我当前的显示模式是“1920 x 1080@30hz”,并且我执行我的应用程序,我会得到一个LWJGLException: org.lwjgl.LWJGLException: Failed to set display mode (-2). 如果我将我的应用程序更改为将全屏显示模式设置为“1280 x

使用Windows 7 64位计算机和支持不同刷新率的显示器:24hz、30hz、59hz和60hz

我有一个小的LWJGL应用程序,它将全屏显示模式设置为“1280 x 720@60hz”

如果我当前的显示模式是“1920 x 1080@30hz”,并且我执行我的应用程序,我会得到一个LWJGLException:

org.lwjgl.LWJGLException: Failed to set display mode (-2).
如果我将我的应用程序更改为将全屏显示模式设置为“1280 x 720@30hz”,它工作得非常好

我只能更改与当前显示模式频率相同的全屏显示模式。在这种情况下为30hz

我知道这不是我的电脑,也不是我的显示器,因为我尝试了一些允许改变频率的视频游戏,但它们没有崩溃

有什么问题吗?我尝试了许多代码来改变显示,它们都得到了相同的LWJGLException


谢谢您的时间。

您可以通过调用找到Java认为您的显示器支持的显示模式的完整列表。通常要求用户从该列表中进行选择,而不是假设支持特定的分辨率。如果要指定分辨率,可以使用
DisplayMode.REFRESH\u RATE\u UNKNOWN
作为刷新率;然后,它将选择监视器支持的任何分辨率。

您将java.awt.DisplayMode与org.lwjgl.opengl.DisplayMode混淆,但感谢您的回复。我有一个包含所有“支持”显示模式的列表。问题是90%是60hz,其余是24hz,59hz,30hz。因此,如果用户碰巧将其显示模式设置为30hz,并希望将其更改为另一个60hz,则应用程序将崩溃。因此,即使我给用户一个“仅30hz显示”的列表,他也不会拥有所有的显示模式。我希望用户选择任何可用频率的显示器。