Javaでスクリーンサイズを取得する方法
シングルモニターの場合、下記のいずれかでスクリーンサイズを取得できる。
- Toolkit.getDefaultToolkit().getScreenSize();
- GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds();
しかしマルチモニターの場合、これだとメインモニターのスクリーンサイズしか取得できない。
解決策として、GraphicsConfiguration に記載されているコードをそのまま使えば良い。
Rectangle virtualBounds = new Rectangle();
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] gs = ge.getScreenDevices();
for (int j = 0; j < gs.length; j++) {
GraphicsDevice gd = gs[j];
GraphicsConfiguration[] gc = gd.getConfigurations();
for (int i=0; i < gc.length; i++) {
virtualBounds = virtualBounds.union(gc[i].getBounds());
}
}