Monday, April 20, 2009 / Java

ランタイム時の画面サイズを取得する(Java Swing)

GUIが複雑なアプリの場合、実行環境にあわせて画面をフルに使いたい場合があります。 Javaには実行時にそのマシンのグラフィック環境に関する情報を取得できる機能があるので、それを使います。

DefaultScreenSize.java

java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment() を使って実行している環境の情報を取得します。

例外が発生する場合があるので、うまくサイズが取得できなかった場合に備えて、妥当な画面サイズをあらかじめデフォルトとして指定しておく必要があります。

import java.awt.*;

public class DefaultScreenSize {
    public static void main(String[] s){
       Dimension screenSize=new Dimension(800,600);// set default
       try {
         GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();
         GraphicsDevice graphicsDevice =graphicsEnvironment.getDefaultScreenDevice();
         Rectangle rect=graphicsDevice.getDefaultConfiguration().getBounds();
         screenSize=rect.getSize();
       }
       catch(Exception ex){
         ex.printStackTrace();
       }

       System.out.println(screenSize);
    }
}