首页 > 解决方案 > 为什么 Java 全屏独占模式没有运行我的最大屏幕分辨率?

问题描述

我试图让 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 上工作

标签: java2dfullscreen

解决方案


“为什么”选择了那种模式,我不能说,但你要做的第一件事就是检查可用的模式......

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 :(,所以如果我在你的鞋子里,我需要找到接近的东西。也许,1650x1050或者2048x1280

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

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

推荐阅读