もふふのはてな

メインのブログに書くほどではない雑多な記事を置く場所

Javaでフルスクリーンモード時に設定できる解像度を調べる

ゲームにフルスクリーンモードを実装するために、使用可能なDisplayMode、特に解像度を取得する必要があったので、そのテスト。

import java.awt.DisplayMode;
import java.awt.GraphicsEnvironment;
import java.awt.GraphicsDevice;

public class DisplayModeSample {
    public static void main(String[] args) {
        GraphicsEnvironment environment = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice device = environment.getDefaultScreenDevice();

        DisplayMode[] modes = device.getDisplayModes();

        for (DisplayMode m: modes) {
            System.out.print("Width: " + m.getWidth()); // 幅
            System.out.print("  Height: " + m.getHeight()); // 高さ
            System.out.print("  BitDepth: " + m.getBitDepth()); // ビットの深さ
            System.out.print("  RefreshRate: " + m.getRefreshRate()); // リフレッシュレート
            System.out.println();
        }
    }
}

出力例

Width: 320  Height: 200  BitDepth: 32  RefreshRate: 60
Width: 320  Height: 200  BitDepth: 32  RefreshRate: 60
...
Width: 2560  Height: 1440  BitDepth: 32  RefreshRate: 60
Width: 2560  Height: 1440  BitDepth: 32  RefreshRate: 60

getDisplayModesメソッドからは使用可能なDisplayModeの配列が得られるので、この中から適当な解像度のものを選んで設定すればよさそう。