Почему не работает полноэкранный эксклюзивный режим Java с максимальным разрешением экрана? - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь запустить полноэкранный эксклюзивный режим 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

1 Ответ

0 голосов
/ 21 апреля 2019

«Почему» этот режим выбран, я не могу сказать, но первое, что вы захотите сделать, это проверить доступные режимы ...

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

Итак, на моем MacBook Pro 2017 года, работающем с 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);
...