为什么 Java 全屏独占模式 运行 不是我的最大屏幕分辨率?

Why isn't Java Fullscreen Exclusive Mode running my max screen resolution?

我试图在我的计算机上将 Java 全屏独占模式设置为 运行 1080p,但它的大小只有 1536 x 864。显示模式也设置为 1920 x 1080.

GraphicsDevice device = GraphicsEnvironment
         .getLocalGraphicsEnvironment().getDefaultScreenDevice();
// device.getDisplayMode() returns 1920 x 1080 and some other stats
// device.getDefaultConfiguration().getBounds() returns 1536 x 864

我希望尝试将屏幕设置为 1920 x 1080 而不是 1536 x 864。是否有实际的方法可以做到这一点或者这是否正常?

提前致谢!

编辑:目前,我正在努力 Windows

"Why" 模式已选择,我不能说,但您要做的第一件事就是检查可用模式...

DisplayMode modes[] = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDisplayModes();
for (DisplayMode mode : modes) {
    System.out.println(mode);
}

所以,在我的 2017 MacBook Pro 上,运行 macOS Maojave (10.14) 我得到...

2880x1800x32bpp@[Unknown refresh rate]
1440x900x32bpp@[Unknown refresh rate]
3360x2100x32bpp@[Unknown refresh rate]
2560x1600x32bpp@[Unknown refresh rate]
2048x1280x32bpp@[Unknown refresh rate]
1650x1050x32bpp@[Unknown refresh rate]
1280x800x32bpp@[Unknown refresh rate]
1152x720x32bpp@[Unknown refresh rate]
1024x768x32bpp@[Unknown refresh rate]
840x524x32bpp@[Unknown refresh rate]
800x600x32bpp@[Unknown refresh rate]
640x480x32bpp@[Unknown refresh rate]
1680x1050x32bpp@[Unknown refresh rate]

但是,如您所见,这里不支持 1080p :(,所以如果我处于你的位置,我需要找到接近的东西。也许,1650x10502048x1280

这对您有何帮助?好吧,一旦您确定了满足您需求的最佳模式,并且根据 documentation,您可以简单地做...

GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
device.setFullScreenWindow(frame);
device.setDisplayMode(mode);

时间有点长,我意识到我没有回答这个问题。我最终弄明白了,这个问题可能是 Java 11 中的错误。当我恢复到 Java 8 开发环境(v221?)时,像素又回到了 1920 x 1080。