java - 为什么 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 上工作
解决方案
“为什么”选择了那种模式,我不能说,但你要做的第一件事就是检查可用的模式......
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);
推荐阅读
- unity3d - unity 2d 与相机边缘的碰撞
- json - 将值与过滤器的所有产品配对
- javascript - 将数据从 mysql 传递到 javascript
- git - 直接在 GitHub 上重命名 PDF 的问题
- reactjs - 尽管控制台没有显示错误,但 useHistory 钩子不起作用
- java - 如何使用 SHA-512 在 C# 中使用 SecureRandom 等效类从随机字节创建哈希值
- functional-programming - 通过显示所有 beta 减少来显示术语 `cons` 的工作原理
- swift - Swift 如何根据登录的 Firebase 用户帐户停止调用视图
- javascript - 为什么球和桨没有发生 HTML 画布碰撞?
- distributed-system - PBFT 是否违反了 Fischer MJ 和 Lynch NA 证明的“f+1”回合界限